AlexMist
Вот пример, только все такие болванки слишком заточены под конкретную задачу.
Alexander
По поводу орм- попробуй pg-promise
Sergey
Ещё объект рест оператор^^
разве ещё нельзя { a, ...all } ?
AlexMist
Работает давно вроде
Alexander
Конечно только под постгрес, но автор очень бодро отвечает в гиттер и есть helpers, чтобы сделать себе орм на коленке
Alexander
В объектах нода падала. Мб зарелизили
Alexander
Драный т9 ))
Алексей
Вот пример, только все такие болванки слишком заточены под конкретную задачу.
Ага. Голый express практически бесполезен, так как он отвечает только за http часть. А нужно данные от куда-то брать. То есть нужна ORM например. А ещё авторизацию не мешало бы прикрутить и понеслось.
Алексей
Поэтому нет единого бойлерплейта.
Алексей
Каждый под себя всё настраивает.
Alexander
>node -v v7.7.2 >node -e "const o1 = {a: 1}; const o2 = {b: 2, ...o1}; console.log(o2);" [eval]:1 const o1 = {a: 1}; const o2 = {b: 2, ...o1}; console.log(o2); ^^^ SyntaxError: Unexpected token ...
Alexander
в функциях - можно в массивах - и подавно в объектах - ыыы, ждем:)
AlexMist
Все эти туториалы и best practices , такие поверхностные, 1 ресур 1 модель. Бизнес логики и ACL/RBAC вообще нет. И видимо по ним все эти boilerplate проекты пишутся. Не поиму, кто их плюсует.
Алексей
Так что похоже пока велосипедостроительством придётся заниматься. Добро пожаловать в удивительный мир ноды.
Алексей
Я пробовал express и Sequelize и мне что-то не особо понравилось. Теперь тыкаю koa2 и typeorm.
AlexMist
И какая разница , я особо не вижу.
AlexMist
Тут смысл в проектировании "системы" , получается у всех свой абстрактый фреймворк ))
Alexander
@alexmist вопрос специально простецкий - идет сбор мнений)) для чего полезна orm, особенно в node?
Алексей
koa2 поддерживает async/await из коробки в middleware и обработчиках запросов, а typeorm похож на Hibernate, а лучше Hibernate ещё ничго похоже не придумали.
Алексей
Чтобы простые запросы не писать руками.
AlexMist
Тут мне понравилось разделение логики, но потом начинает выглядеть очередным велосипедом ) https://docs.feathersjs.com/
Алексей
я концепцию хуков вообще не приемлю
Алексей
я как-то экспериментировал с автоматизированными обработчиками CRUD операций и понял, что лучше кодогенерации с последующим ручным изменением кода пока ничего нет
AlexMist
Согласен! Либо автоматизация простых операций, не больше!
AlexMist
Я спросил про болванку, т.к. думать нужно ) А времени мало. Потом рефракторить всё равно.
Алексей
Просто в сгенерированный код можно вносить сколь угодно значительные изменения, которые потом можно будет прочитать, а с хуками так скорее всего не выйдет.
Aleksey
@alexmist вопрос специально простецкий - идет сбор мнений)) для чего полезна orm, особенно в node?
чтобы работать со своими моделями данных не выходя из контекста приложения, readability counts
Alexander
вопрос широкий с кучей тонкостей. одно можно сказать с уверенностью: только async-await и никаких коллбеков на километр не подпускать
Алексей
Блин, вот что сильно бесит в JS, так это куча методов работы с асинхронностью: коллбеки, генераторы, промисы, async/await. Надоело уже.
Alexander
этот момент весело отбрасывает express, feathers и loopback (к сожалению)
Алексей
Alexander
ну ты сам тогда все понимаешь что зачем
Алексей
недавно на хабре видел про клон Laravel на JS, так там везде yield
Alexander
откуда злость?)
Alexander
ну зря
Alexander
ищо б джангу так портанули бы
Алексей
Зоопарк же
Alexander
но я сам в 2014 писал на co и пищал от щастья. потом s/function*/async function/ и вуаля:)
Alexander
так что не зря, а tj молодец
Алексей
А асинхронность - это как бы киллерфича NodeJS. И такой бардак.
Алексей
Если взять тот же Go, куда tj сбежал, так там только один способ работы с параллельными операциями: горутины с каналами.
Alexander
киллерфича - это использование libuv под капотом а внешняя асинхронность - это вообще другая сущность и категория вещей
Alexander
ну омонимы
Alexander
ква:)
Алексей
Я не вижу libuv, да хоть там голый epoll с select. А вот зоопарк из генераторов с промисами я вполне ощущаю.
Dmitry
tj это tjournal ?
Arseniy
tj это tjournal ?
https://github.com/tj
Алексей
тоже пришел к этому, и не только в мире ноды
Если для ноды это справедливо, то справедливо для подавляющего большинства других языков и технологий, из-за огромной гибкости JS.
AlexMist
Про это я и говорил. Структура простая. Спасибо.
Anonymous
А асинхронность - это как бы киллерфича NodeJS. И такой бардак.
Ну всё кроме колбэков сводится к резолву промисов)
Алексей
ну колбеки кстати тоже можно промисифицировать
Алексей
правда насчёт взаимоотношения генераторов и промисов я не уверен
Alexander
эм
Alexander
генераторы не сводятся к промисам, у них там своя стратосфера коллбеки можно, да)
Alexander
в общем про коллбеки нужно просто быть в курсе как они устроены и работают (что там знать-то) про генераторы - быть в курсе как их использовать все всегда сводить к промисам и везде использовать async/await так победим
Alexander
это по тем 4 пунктам
Alexander
так победим это засилье коллбеков в npm
Алексей
генераторы можно обернуть в промисы, и скорее всего можно ждать промис в генераторе
Алексей
но лучше уж всегда использовать async/await или цепочку промисов
Anonymous
генераторы не сводятся к промисам, у них там своя стратосфера коллбеки можно, да)
Не сами генераторы, асинхронность с их помощью - это по прежнему резолв промиса, скрытый в обёртке вокруг генератора)
Anonymous
Правда, скоро будут async generators)
Алексей
да ну нахрен
Anonymous
😂
Anonymous
Ну по сути это создали тупо для for await of
Anonymous
Хотя это уже реально убер-функция получается, и множественные возвраты из функции, и асинхронность сразу
Vl
Кто-то знает решение для задачи авто пула с git и перезапуска сервера в случаи если есть изменения на ветке?
Igor
Тебе нужен Continuous Deployment
Denis
Или просто deploy.sh :D
Vl
Тебе нужен Continuous Deployment
Можно подробнее?
Igor
Где код держите? Гитхаб, битбакет, гитлаб, локальный гит-сервер?
Михаил
svn
Igor
Посмотрите, в бакете есть интеграции в разные сервисы. Я лично circleci гоняю. Тесты, проверки, деплой автоматом
Vl
Спасибо за совет. Посмотрю сейчас.
Aler
доброй ночи, господа. Можете посоветовать из всего многообразия серверных фреймворков что-нибудь? Нужно для API небольшого
Aler
Очень хотелось бы что-то дружелюбное, быстрое и использующее es6