@nodejs_ru

Страница 2091 из 2748
Алексей
01.06.2018
16:32:32
Ребят. Ну пт жеж

Алексей
01.06.2018
16:33:53
а с этим никто не подскажет?

народ, не зазорно продакшн babel-node'ой запускать?

вроде где-то слышал, что это не ок, потому что просадки могут быть. хотя, по логике, просадка должна быть только на старте, что вообще не критично

Google
Roman
01.06.2018
16:34:51
В общем клиентская часть обращается на сервер REST API инпоинт, что бы забрать данные с БД. Перед тем, как брать данные с БД я хочу убедиться, что у этого пользователя есть необходимые права, т.е. добавил функцию мидлвар, которая проверяет наличие токена в заголовке, и если его нет или он не совпадает то возвращает на клиент статус ошибки, где я ее буду обрабатывать. Если токен правельный, тогда в мидлваре вызываю next() для обработки этого запроса. Но сейчас проблема в том, что если я отправляю с клиента запрос с токеном в headers, то мидлвар выкидывает ошибку при первом запросе. Если headers нет, то все нормально отрабатывает.

Alexander
01.06.2018
16:34:57
Лично я за чистоту запуска. Нода выполняется в одном месте, так что нет смысла транспайлить код на множество машин. Максимум что можно это прогнать перед запуском

Алексей
01.06.2018
16:35:10
Точно, где мое пиво
Я твою 1.5 выпил. Сорян

Roman
01.06.2018
16:35:14
Проблема в headers, есть идеи как решить?

Alexander
01.06.2018
16:35:26
Придётся за новой бежать

Проблема в headers, есть идеи как решить?
Какой тип запроса делаешь?

И ловишь как?

Roman
01.06.2018
16:36:23
GET

Alexander
01.06.2018
16:36:55
Ловишь через app.get?

Алексей
01.06.2018
16:37:00
Roman
01.06.2018
16:37:14
app.use('/city', verifyToken); app.get('/city', getCities);

Google
Алексей
01.06.2018
16:38:03
О а так легально?

Alexander
01.06.2018
16:38:03
app.get('/city', verifyToken, getCities) работает корректно?

О а так легально?
Ну да, там же по нисходящей идёт

Как обработчики событий

И без next в следующий не провалится

Roman
01.06.2018
16:44:25
Интересно, почему мой вариант не работает?

Я так сделал так потому, что бы на любые методы запросов(GET, POST, PUT, DELETE) на REST API '/city' производилась проверка токена пользователя. И тем самым не дублировать код.

Т.е. получается сейчас мне нужно писать так app.get('/city', verifyToken, getCities) app.post('/city', verifyToken, createCities) app.put('/city', verifyToken, updateCities) app.delete('/city', verifyToken, deleteCities)

Roman
01.06.2018
16:51:37
Можно all использовать или use
Я вот так писал, и оно почему-то не работало так как нужно: app.use('/city', verifyToken); app.post('/city', createCities) app.put('/city', updateCities) app.delete('/city', deleteCities)

Yaroslav
01.06.2018
16:52:08
Use для этого и был создан

Еще есть all для всех crud запросов

Roman
01.06.2018
16:58:47
Уберите '/city' из use
Если пишу так, то проблема не исчезает

app.use(verifyToken); app.get('/city', getCities);

Корректно работает только так app.get('/city', verifyToken, getCities)

Yaroslav
01.06.2018
16:59:49
Если пишу так, то проблема не исчезает
Что внутри use. Должно работать

Roman
01.06.2018
17:01:14
Что внутри use. Должно работать
Оно работает, но почему-то отрабатывает 2 раза. В первый раз без моих headers, а во второй раз уже с headers.

Google
Yaroslav
01.06.2018
17:01:45
Это отдельный запрос

Fave icon

Roman
01.06.2018
17:02:13
Просто я токен передаю в headers и хочу его проверять, и если его нет, отдавать ошибку на клиент, и обрабатывать ошибку так

Fave icon
А его можно как-то игнорировать в мидлваре?

Yaroslav
01.06.2018
17:02:42
Да.

Почитайте в нете

A.
01.06.2018
17:03:04
Лучше на Gist

Roman
01.06.2018
17:08:27
Покажите лучше код verifyToken
function verifyToken(req, res, next) { if (req.get('token') === "") { return res.sendStatus(401); } else { next() } }

Yaroslav
01.06.2018
17:20:15
что за req: express.Request - и потом юзает req и при этом, это работает

?

Roman
01.06.2018
17:20:32
Это тайпскрипт

Alexander
01.06.2018
17:21:10
земля пухом

Yaroslav
01.06.2018
17:21:43
1. зачем тс на серве

2. логичней проверять на соответсвие правильному значению

ибо у тебя сейчас просто любая запись проходит

Google
Kendr
01.06.2018
17:22:44
Yaroslav
01.06.2018
17:22:48
3. ты уверен, что req.get возвращает

Roman
01.06.2018
17:22:51
Yaroslav
01.06.2018
17:23:06
Ради типов?
ага. видел я реальные, большие проекты. везде тип any

отличные типы

Alexander
01.06.2018
17:23:11
Ради типов?
зачем типы на сервере?

зачем сервер вообще?

зачем?

Yaroslav
01.06.2018
17:23:26
*о серверной части - ФО норм

Alexander
01.06.2018
17:23:28
?

Yaroslav
01.06.2018
17:23:59
Это я для простоты скинул пример
3. ты уверен, что req.get возвращает, что нужно?

Morsik
01.06.2018
17:24:20
ага. видел я реальные, большие проекты. везде тип any
зато потом какие открытия когда постепенно их убираешь

Yaroslav
01.06.2018
17:24:31
ибо я не понял

Roman
01.06.2018
17:24:44
Morsik
01.06.2018
17:24:49
раскройте, тему пожалуйста
несхождения типов например

Yaroslav
01.06.2018
17:25:04
несхождения типов например
ммм. чтож такого завязаного на типы есть? где это мешает

любая орм приобразует

а кроме этого. хз, где проблемы

Morsik
01.06.2018
17:25:36
в одном месте строка передается в другом месте обьект принимается

Google
Yaroslav
01.06.2018
17:25:44
и?

Morsik
01.06.2018
17:25:50
очевидный баг

Yaroslav
01.06.2018
17:25:53
не делайте, что б так было

или у вас имя data - значение примитив?

я хз, как такое допускать

да бывает, но в основном при request с фронта

учитывая, что везде const стараються лепить и что такого критическо-зависимого от типов может быть?

Roman
01.06.2018
17:32:00
учитывая, что везде const стараються лепить и что такого критическо-зависимого от типов может быть?
А когда разработкой занимается несколько человек, или нужно поправить старый код, в котором ты плохо ориентируешься, и указанные типы будут как документация, + редактор сразу укажет ошибку типа при разработке.

Yaroslav
01.06.2018
17:32:30
я хз, по названию переменных понятно, что там. с учетом норм кода, там не должно быть проблем особых

может я еще не видел просто плохих проектов

Roman
01.06.2018
17:33:59
К тому же есть можно создавать абстрактные классы, интерфейсы и енамы

Yaroslav
01.06.2018
17:34:10
и зачем они в js?

Roman
01.06.2018
17:34:39
и зачем они в js?
В JS они не нужны, а вот при разработке иногда очень полезны и удобны

Yaroslav
01.06.2018
17:35:14
попробуйте так. function verifyToken(req, res, next) { if (req.get('token') !== validValue) { return res.sendStatus(401); } next() }

Страница 2091 из 2748