Comments 28
Попахивает подтверждением фразы «На javascript каждый должен создать свой фреймворк»
И зачем вы его писали, если уже знакомы с PHP?
Чем-то похоже на Yii, но кое-что почему-то переименовано
И зачем вы его писали, если уже знакомы с PHP?
Чем-то похоже на Yii, но кое-что почему-то переименовано
+1
Ну для начала, php и nodejs не нужно сравнивать, у них принцип работы совсем разный, просто на nodejs мне не хватало инструментов.
>> Чем-то похоже на Yii, но кое-что почему-то переименовано
С этого фреймворка я брал удобные для меня конструкции и подходы
>> Чем-то похоже на Yii, но кое-что почему-то переименовано
С этого фреймворка я брал удобные для меня конструкции и подходы
0
>> Чем-то похоже на Yii, но кое-что почему-то переименовано
С этого фреймворка я брал удобные для меня конструкции и подходы
Вы точно не первый :) Jii чем-то не подошёл?
0
контроллеры и экшены, которые нам навязывает expressjs
нет в expressjs никаких контроллеров и экшенов, есть только middleware
Насчет гибкости роутера, как в этом фреймворке можно исключить парсинг кук и работу с сессией например для маршрута «GET /assets/<filePath:.*>»? В expressjs это тривиальная задача.
т.е. если вам нужно будет в середине проекта воткнуть логгер
Не понятно в чем проблема:
router.get('/user/:id',user.getById)
router.get('/user/:id', [loggerBefore, user.getById, loggerAfter])
+4
Ваш пример с логером хорош, но давайте не забывать сколько у вас будет копипаста, особенно если мы говорим о большем проекте, но тут уже больше дело вкуса и удобства.
Что касается отключения обработки сессии и куки, а в чем проблема, и зачем их отключать? если мы говорим про отдачу статики, так даже любую статику нужно отдавать только разрешенным пользователям, в противном случае ее можно один раз отдать и затем закешировать nginx (и тут вообще можно будет забыть про конекты к Вашему приложению)
Что касается отключения обработки сессии и куки, а в чем проблема, и зачем их отключать? если мы говорим про отдачу статики, так даже любую статику нужно отдавать только разрешенным пользователям, в противном случае ее можно один раз отдать и затем закешировать nginx (и тут вообще можно будет забыть про конекты к Вашему приложению)
0
Вопрос не в том зачем отключать, а в гибкости. Не нравится пример с куками, есть аналогичный по сути пример с cors. Допустим возникла необходимость на конкретный маршрут API, либо на определенный неймспейс отдавать заголовок «Access-Control-Allow-Origin: *», в случае с expressjs вставляем middleware перед любым нужным маршрутом. Если нужно что-то по сложнее чем *, то берем готовый middleware из npm, а в вашем случае, на каждую типовую задачу придется писать свой велосипед.
0
Когда-то давно писал middleware для express примерно с таким api:
const group = require('group-middleware');
group(function () {
router.get('/user/:id',user.getById);
router.get('...');
})
.before(auth);
.after(resultFormatter);
Решает проблему копипасты?
0
Интерестное решение, а как онорешает кейс:
Имеем 3 роута, перед кадым нужно выполнить миделварину со своими параметрами, затем еще два роута также с общей миделвариной, ну и затем перед всеми тремя еще одну.
Неспорю немного претянутый кейс и тут наверно больше подойдет выражение: «на вкус и цвет все фломастеры разные», но я почему склоняюсь к тому что, контроллер должен решать что и когда запускать, это субьективное мнение
Имеем 3 роута, перед кадым нужно выполнить миделварину со своими параметрами, затем еще два роута также с общей миделвариной, ну и затем перед всеми тремя еще одну.
Неспорю немного претянутый кейс и тут наверно больше подойдет выражение: «на вкус и цвет все фломастеры разные», но я почему склоняюсь к тому что, контроллер должен решать что и когда запускать, это субьективное мнение
0
чем не понравился react?
-7
причем тут реакт? реакт это клиент, а тут речь идет про серверный фреймворк
+2
Подучите матчасть господин. React уже и на сервере рендерится.
-10
и еще пади запросы делает в базу? да? и рест апи выдает?
+3
рендеринг не означает что есть полноценный серверный фреймворк для работы с бд например
+2
Боже, зачем так делать? https://github.com/kalyuk/dok-js/blob/2d283f8a967f36a569debdf6d2ef4898de632bb5/src/base/Application.js#L31
constructor(config) {
super(config);
global.$App = this;
this.$cache.modules = {};
}
0
Если вы про глобальную переменную, то она скоро будет убрана, все компоненты уже начали использовать сервис для получения инстанса приложения, осталось дорефакторить
0
Еще и в конструкторе вызывать конструктор через super() вообще не комильфо.
-2
UFO just landed and posted this here
Sign up to leave a comment.
Nodejs MVC framework или очередной велосипед