
Alex
20.03.2017
16:01:27
совет-то ок
но ему нужно открыть соединение в хендлере роута

Alexander
20.03.2017
16:01:46
Чёрт, серьёзно. Ведь у меня могут подключиться несколько пользователей и у каждого своё подключение...

Alex
20.03.2017
16:01:48
т к коннстринг приедет от клиента

Google

Alexander
20.03.2017
16:02:40
Я думал завести переменную, которая будет хранить строку подключения, но тогда получается, что она будет переписываться...

Alex
20.03.2017
16:02:42
парни, есть какой-нить бойлерплейт нормальный с нормальным?
require('./db')
app()

Max
20.03.2017
16:02:44
В чем проблема создать один объект, хранящий коннект, и передавать его, когда он нужен?

Alex
20.03.2017
16:02:52
а то мы не объясним
потому что у него разные коннекты
и разные connectionString

Alex
20.03.2017
16:03:14
А, ну если так, то самый прямой путь - открывать соединение при каждом запросе. Не самый эффективный способ, но и не так, чтобы сильно страшно. Тем более, насколько я понимаю, цель учебная)
Потом поймешь, как соединения лучше кэшировать.

Max
20.03.2017
16:03:18
Конект стринг?
А
Ты уже написал

Alex
20.03.2017
16:03:42
но ему нужно открыть соединение в хендлере роута
т к коннстринг приедет от клиента

Max
20.03.2017
16:03:59
Пропустил этот момент

Google

Alex
20.03.2017
16:04:35
у тебя какая-то авторизация будет?

Alex
20.03.2017
16:04:56
А, ну если так, то самый прямой путь - открывать соединение при каждом запросе. Не самый эффективный способ, но и не так, чтобы сильно страшно. Тем более, насколько я понимаю, цель учебная)
Потом поймешь, как соединения лучше кэшировать.
тут штука в том, что соединение штука всё же дорогая, и ты не можешь (или не хочешь) кэшировать, условно, 1000 коннектов к базе/базам. Т.е. у твоего коннекта более сложный жизненный цикл будет.
Поэтому открывай каждый раз при новом коннекте от пользователя. Потом разберешься как сделать правильно

Alexander
20.03.2017
16:06:48
Никак не понять. Могут 10 человек, а может 1

Alex
20.03.2017
16:07:24
вопрос

Alexander
20.03.2017
16:07:31

Alex
20.03.2017
16:07:34
а зачем клиентам вводить строку подключения вручную?
а по*** ваще
лепи че хочешь
главное отчет
открывай коннекшн в хендлере - норм
это будет только препод смотреть

Alexander
20.03.2017
16:08:31

Alex
20.03.2017
16:09:34
ну тогда наверное проще знать вообще какие могут быть коннекшн стринги, хранить их в массиве, на старте открыть все, а юзер будет выбить в <select> теге что он хочет
патамучта тыщу коннекшенов никто не делает никогда
нигде
кроме универа
там делают
там можно)
можно потом этот вариант оптимизировать - хранить тот же массив строк и к нему сопоставить коннекшены. если строка есть, а коннекшена нет (null например), то быстренько его поднимаем и дальше храним и переиспользуем

Alexander
20.03.2017
16:14:46

Alex
20.03.2017
16:15:11
варик
у нас преподы хранили ответы к тестам в базе
дать студентам самим вводить коннстринг и попасть в преподскую базу - ^^

Google

Alexander
20.03.2017
16:28:55
Только вот как дать каждому поключению уникальный токен? Юзать socket.io?

Nikita
20.03.2017
16:58:01
Надо тестировать апи. Т.е запускать нечто, что делало бы запросы и проверялo результаты. Есть какой-нибудь другой путь, кроме как использовать нативны http или chai-http https://github.com/chaijs/chai-http?

Kanat
20.03.2017
17:11:10
как написать в чат код чтоб красиво получилось?

Roman
20.03.2017
17:12:14
Дай ссылку на pastebin

Kanat
20.03.2017
17:13:05

Roman
20.03.2017
17:14:09
Красиво не получится, но можешь использовать три символа ` вначале и конце

Nikita
20.03.2017
17:51:09
какой же ебучий это passport

Dmitry
20.03.2017
17:56:31
что в нем конкретно не нравится??

Nikita
20.03.2017
18:30:20
Ух. Начнем с того, что я на самом деле отчасти сам виноват. Когда добавил в статик метод для модели mongoose, который вместо _id искал по id и ничего не находил. Потом оказывается у меня chai-http не отправлял username и password поля.. При этом паспорт никак мне не сигнализировал об этих ошибках. Вот и всио :с Я просто не знал где их искать(ошибки)

Dmitry
20.03.2017
18:37:14
вроде у методов passport.authenticate и passport.authorize есть коллбэки на ошибки. Я давно его использовал, тем не менее запомнил что почти всё пришлось заворачивать в try/catch и пробрасывать ошибки наверх. Но это общая проблема кода на коллбэках

Nikita
20.03.2017
18:37:29
где в доке https://github.com/jaredhanson/passport сказано, что passport.authenticate принимает вторым аргументов в том числе обьект с ключем successReturnToOrRedirect: '/profile'? :с
Почему для того, чтобы проверить залогинен ли пользователь надо ставить отдельный пакет connect-ensure-login и об этом так же нет в доке

Nikita
20.03.2017
18:38:50
Я честно говоря даже понять не могу, работает ли у меня сейчас обработчики для роутов от паспорта или нет. Пока буду разбираться почему chai-http не шлет пост дату

Dmitry
20.03.2017
18:38:56
дока ужасная, согласен

Nikita
20.03.2017
18:39:37
Почему не было сказано сразу, что к монгусу есть еще один пакет? :с Дефолтный пример с доки ведет лишь на просто пример к експрессу
Вобщем хз. Мне надо было быстро накидать авторизацию и регистрацию для тестового, а я промучался с этим больше, чем закладывал
Я понимаю, что необходимо будет сделать соль и хеш для паролей, если это не тестовая, но не вижу об этом упоминания в доке :с
Вобщем может вся проблема только в доке..

Dmitry
20.03.2017
18:42:04
не знаю как щас, но полгода назад какой-либо альтернативы пасспорту для ноды не было вообще :(
чтобы поддерживал (пусть модулями) столько провайдеров авторизации

Google

Alex
20.03.2017
20:20:40
а какие альтернативы паспорту есть сейчас?

Stanislav
20.03.2017
20:21:35
водительское удостоверение

Alex
20.03.2017
20:22:17
require('passport-moryaka')

AlexMist
20.03.2017
21:19:10
Это вообще нормально ? В sequelize js модель со связями в JSON перегонять вручную нужно ?
?

Admin
ERROR: S client not available

Denis
20.03.2017
21:58:38
А кто что для валидации использует? Например, пришёл POST или GET запрос, который надо обработать прежде, чем спроксировать во внутренний сервис.

Denis
20.03.2017
21:58:59
Django Forms :D

Denis
20.03.2017
21:59:32
Оу
Есть ссылка на API под рукой?)

Denis
20.03.2017
21:59:58
API чего?
Если что - можно конечно повесить django rest framework вроде API и валидировать через него но это херня)
(оффтоп про питон)

Denis
20.03.2017
22:03:12
Да не обязательн овешать
Python это тот же JS
Просто взять идею можн)

Felix
20.03.2017
22:09:06

Denis
20.03.2017
22:41:18
joi
Норм) Мы тут внезапно очень похожий запилили

equicolor
21.03.2017
02:00:01
ajv норм
https://github.com/epoberezkin/ajv

Google

Дмитрий
21.03.2017
03:05:42
joi не нравится своим императивным подходом, всё на функциях, не получится просто так вынести валидацию например в json
Поэтому ajv)

Denis
21.03.2017
03:52:04
В каких кейсах может потребоваться валидация по JSON? :)
JSON Schema вроде не оч подходит для валидации в реальной жизни

Alex
21.03.2017
06:59:39
Для валидации контента (ну, там, длина пароля, например), нужно что-то еще использовать. Ну или использовать formats из JSON Schema (хотя, это и не все позволяет проверить)

Сергей
21.03.2017
07:20:50

Дмитрий
21.03.2017
07:21:40
++

Dreamerinnoise
21.03.2017
07:22:37

Сергей
21.03.2017
07:23:57
у меня есть знакомые чуваки, которые валидируют входящие данные REST API на сервере

Pavel
21.03.2017
07:26:07
юзаем swagger (openAPI теперь) это по сути RESTful платформа на основе JSON Schema

Denis
21.03.2017
07:30:00

Сергей
21.03.2017
07:30:29

Mikhail
21.03.2017
08:02:16
Юзаем самопис поверх raml схемы