Usman
как инициализируется?
в файле server.js app.post('/login', urlencodedParser, usersController.login);
Usman
как у тебя мидлвары вызываются
в файле server.js app.post('/login', urlencodedParser, usersController.login);
Alex
а где тут инициализация сессии?))
Usman
а где тут инициализация сессии?))
const sessionStore = require('./lib/sessionStore'); app.use(session({ secret: config.session.secret, key: config.session.key, resave: config.session.resave, saveUninitialized: config.session.saveUninitialized, cookie: config.session.cookie, store: sessionStore }));
Alex
config.session.resave пробовал true ставить?
Usman
это стоит до обработчиков запроса?
там вот это const sessionStore = new MongoStore({ url: config.basedata });
Usman
проверяй порядок
если сохранить сессию вот так, то работает app.get("/login", function(req, res, next) { req.session.id = req.session.id + 1 || 1; }
pavel
парни я установил ноду через nvm версию 9.2.1 , но мне нужна другая , как мне поменять через nvm её?
Дмитрий
nvm install номер нужной версии, потом nvm use и тоже номер нужной версии
pavel
спс
Vadim
подскажите, пожалуйста, это нормально, что простенький сервер, опрашивающий каждые 5 секунд mongo (достает массив в 100-200 элементов), сравнивающий с примерно таким же массивом, после нескольких циклов записывающий в mongo новые элементы, и отдающий каждые 5 секунд сопоставимый массив на фронт, — что это всё стремится занять 1,5Гб памяти? читал, что вроде как для ноды это по умолчанию норм. поставил ограничение на old_space, теперь gc чаще срабатывает и всё держится в рамках 500Мб. Но откуда вообще такие цифры? Нагрузка же небольшая и всего несколько массивов
Anton
Народ, есть тру либа для распознования штрих кодов?
Vadim
если покажите, что по теме почитать стоит, тоже буду благодарен
Vadim
А можно код?
там несколько модулей и... вам оно надо, копаться в этом?)
Vadim
Работа gc достаточно дорогая, и если есть свободная память то не зачем напрягаться
да, понимаю, но памяти как раз нет, у меня free аккаунт на heroku)
Михаил Макарычев
там несколько модулей и... вам оно надо, копаться в этом?)
Я бы посмотрел, как на запросах к БД можно 1.5 ГБ съесть
Михаил Макарычев
там несколько модулей и... вам оно надо, копаться в этом?)
Я помню, как в молодости на каждый запрос выполнял db.open(), а потом db.close() Вот это больно было
Vadim
Я бы посмотрел, как на запросах к БД можно 1.5 ГБ съесть
есть такое, надо поправить, спасибо)
Михаил Макарычев
есть такое, надо поправить, спасибо)
Вы через mongoose с БД работаете?
𝓖0𝓹43𝓡
ребят, немного оффтопа. Не подскажите пожалуйста, а апи с апи у одноклассников совсмем все плохо или есть ресурс с нормальным описанием?
Denis
нет, а что?
А то бы порекомендовали .lean() использовать
Михаил Макарычев
нет, а что?
Там есть более удобный способ подключения к БД. Секунду
Михаил Макарычев
нет, а что?
Самый верхний пример: https://mongodb.github.io/node-mongodb-native/api-generated/db.html А то на гитхабе у них там не очень удобный способ описан
Vadim
Самый верхний пример: https://mongodb.github.io/node-mongodb-native/api-generated/db.html А то на гитхабе у них там не очень удобный способ описан
а я через MongoClient.connect подключаюсь, где курсор в коллбеке возращается. это плохая практика?
Михаил Макарычев
а я через MongoClient.connect подключаюсь, где курсор в коллбеке возращается. это плохая практика?
Нет. Но мне кажется, что намного удобнее, когда db передаётся не через коллбэк
Vadim
MongoClient.connect(urlmongo, function(err, db) { if (err) throw err; db.createCollection("collect", function(err, res) { if (err) throw err; console.log("Collection created!"); db.close(); });
Михаил Макарычев
MongoClient.connect(urlmongo, function(err, db) { if (err) throw err; db.createCollection("collect", function(err, res) { if (err) throw err; console.log("Collection created!"); db.close(); });
Лично мне не очень удобно так подключаться. Как вы потом будете использовать db во внешнем коде?
Michael 🌌
Вот кстати не до конца понятно, как прокидывать объект БД в другие файлы
Michael 🌌
Может я, конечно, его как-то криво экспортировал, но у меня в контроллерах undefined был
Michael 🌌
В том же файле, где выполняется подключение - всё норм, объявляем переменную снаружи подключения, при подключении её переопределяем и всё пашет
Vadim
Если вы выполняете это при каждом запросе к БД, то это плохо
верно, приходится каждый раз переподключаться. да, не очень-то получается
Michael 🌌
Условие - пользоваться только нативным драйвером 😅
Михаил Макарычев
Михаил Макарычев
верно, приходится каждый раз переподключаться. да, не очень-то получается
Один раз в коде нужно выполнить db.open() Вообще нода при вашем подходе где-то после 12 подключения должна в консоль сыпать сообщение об утечке памяти
Михаил Макарычев
ну, костыль с настройкой gc помог, кстати. но да, надо по уму сделать
Надеюсь, вы не рассказали уже всем коллегам и друзьям, что ни в коем случае нельзя использовать ноду, потому что она течёт при банальных запросах к БД и пр.
Vadim
я слышал такое в одной компании, там у них один раз один программист пересел с php на ноду, написал что-то, у них память потекла, после чего техдир ввел строгий запрет на ноду (даже упоминать нельзя)
Vadim
Это ирония была :)
а я взял, и серьезно ответил, с меня не убудет)
sho?
часто деятели от других платформ и языков кончик носа сунут, утекающий кусочек говнокода напишут и потом трезвонят налево и направо об ущербности ноды и т.п.. Ну вот как с тем самым пэхапешником и техдиректором. :)
Vladimir
@admin
Nikolay
/report
Anton
У меня есть middleware, которая чекает роль юзера. Хочу, чтобы кроме юзеров из списка остальные не имели доступ к приложению. Нормально ли не вызывать next в мидлваре в этом случае? Речь про telegraf, но в ноде думаю мидлваря работает также. В общем нормально ли не вызывать next() ?
сomorsiс
@Atassis
Michael 🌌
Некст нужен только чтобы дальше пройти
Yar
/report
Andrey
пошли обедать ?
сomorsiс
пошли
ilya
Как этот запрос curl -d '[{"firstname": "barack", "lastname": "obama"}, {"firstname": "mitt", "lastname": "romney"}]' -H 'Content-Type: application/json' http://127.0.0.1:5000/people будет выглядеть в строке браузера?
ilya
http://127.0.0.1:5000/people?…
Cenator 🐈
fetch()
ilya
?
Cenator 🐈
http://127.0.0.1:5000/people?…
если сервер не принимает urlencoded, то не прокатит
Cenator 🐈
у тебя тип жсон
Anonymous
Postman
ilya
Да
ilya
я в нем сижу
ilya
хорошо, спрошу конкретнее, как из JS запросить?
Cenator 🐈
фетчем
ilya
прошу, немноооооожечко понятнее
ilya
если бы я знал все я бы не спрашивал)
Cenator 🐈
открываешь доку fetch, там же все интуитивно
ilya
тогда все понятно, через Ajax
ilya
мне казалось это все GET
ilya
и можно из браузера
Michael
какой браузер? это чат про node.js!
ilya
началось
倫太郎
Почалось
ilya
Весь NodeJS в одной картинке