Comments 9
человек может с абсолютного нуля за пять дней собрать веб-приложение, использующее базу данных и содержащее хоть какую-то, но логику.Аналогичную задачу только без TypeScript пока: Node.JS + Express освоил за 1-2 дня.
это крик души человека, который в данный момент находится в полном восторге от мира Node.js и делится с Вами этим.Находился и нахожусь в таком же восторге!
А также тем, что ничего нет невозможного, нужно просто брать и делать!Совершенно согласен!
Конечно, нельзя отрицать, что автор ничего не знал и первый раз сел писать код. Нет, знания ООП, принципы работы REST API, ORM, база данных присутствовали в достаточном объеме. И это может говорить только о том, что средство достижения результата абсолютно не играет никакой роли и высказывания в стиле: «Не пойду на эту работу, там язык программирования, который я не учил», для меня теперь просто проявление человеком не слабости, а скорее защиты от незнакомой внешней среды. Да что там скрывать, страх присутствовал и у меня.Страха такого совершенно нет, просто интересно, как человека взяли на работу без этого опыта?! Тоже есть большой опыт с REST API, ORM, базами данных. Однако частенько требуется опыт Typscript, Mongo, Angular иле React и т.п., если чего-то не знаешь, то даже, если имеешь представление об этом всём и как оно работает не факт, что возьмут, хотя всё это можно освоить за 2-3 дня максимум (кроме может Angular и React ;). Хотя конечно попадаются адекватные работодатели, которые при коротком собеседовании по уверенности ли в голосе или предыдущему похожему опыту понимают, что ты без труда с этим разберёшься при необходимости и без проблем сделаешь. Мне недавно такой попался. :) Может просто от кармы зависит? ;)
Автор, если тебе так зашёл ts и typeorm, посмотри в сторону фраемворка nest js. Это тот самый, настоящий, бэкенд на Node js + ts с крутейшими возможностями (работает поверх всё того же express). Где-то на хабре даже выходила статья про него, советую прочесть.
Мне вот 15 лет. Написал интернет-магазин на Blazor(не Webassembly). Сайт типа своя CMS, с редактором страниц(ckeditor). Есть программа на WPF. Там всякие справочники. Писал про это статью.
Решил переписать на React + Node. Прошёл месяц. Возненавидел всю экосистему JS. Начал учить React. Понял, что JSX - полная фигня, по сравнению с Razor-шаблонами. Эти фигурные скобки)). Ну с этим можно смирится. Начал писать сервер. Node + express + typeorm+ mssql база данных. Сразу добавил typescript и на сервер и в React, потому что intellisense для js вообще не работает толком.
Typeorm, по сравнению с Entity Framework Core - кусок.. не знаю даже чего. Миграции вообще не работают!!! Они просто не работают! Из всего месяца, я потратил 3 недели пытаясь настроить typeorm миграции. Я пробовал все. У меня не работал template проекта от typeorm! Причём такая проблема была не только у меня(на Github есть issue по миграциям с mssql). Иногда typeorm говорит, что нет изменений, когда я добавил новые сущности и поля, хотя первая миграция генерится нормально, было такое, что миграции генерируются нормально, изменения находит(это было уже чудо), пишу npm run migration-run(скрипт, в котором уже вызываю typeorm, он должен запустить миграции, т. е. применить изменения в бд), а typeorm мне пишет "нет изменений в схеме"! Да как же нет, если только что typeorm сгенерила миграции. Тестовую базу удалял миллион раз, проекты пересоздавал, пробовал postgres, тоже. самое. Уже вообще думал не писать на node, но знал ещё про mikroorm, там есть нормальный unit of work. Попробовал с mikroorm, mssql поддержки нет, стороняя библиотека не работает, заработало с postgres, но все равно не нравится то, что миграции при генерации проверяют схему бд, а не самого проекта.
Вот почему это плохо. Я добавил новое поле, сгенерил миграцию, потом добавил ещё одно поле, пытаюсь сгенерить миграцию, ORM сравнивает с базой структуру, и в новой миграции добавляет два поля, хотя в прошлой миграции оно тоже добавляется. Это потому, что в ORM миграции - это sql запросы в чистом виде, а в ef core, миграция - это набор вызовов методов(типа AddColumn) и ORM может быть независимая от бд, и знать свою структуру.
Ещё нет LINQ. В JS нельзя разобрать функцию на Expression, хотя я узнал, что можно менять AST дерево Typescript кода и реализовать LINQ в TS, но не в JS. Есть даже библиотека для typeorm для поддержки LINQ в Typescript. Но, для MikroOrm такой библиотеки нет, а самому писать как-то долго.
Хочу про это все статью написать и там все подробнее описать.
Короче, один негатив у меня вышел. Удивлён, что JS-сообщество не смогло написать orm лучше, или хоть вровень ef Core. Причина понятна, в JS обществе коммерческой цели нет это делать у больших компаний, а Entity Framework написала Microsoft и поддерживает это ORM. Как после этого можно писать что-то на JS? Сам JS как язык, конечно, тоже не супер, но на это не жалуюсь. Чуть захейтил JS
Первое рабочее место или как начать разработку API на Node.js