Alexander
третье - это к lodash
Alexander
второе - к Object.assign
Alexander
первое - к require
Alexander
не слишком обращайте внимание на весь этот круговорот. по-настоящему необходимая вещь одна - async await
Alexander
в случае вебсервера - koa2
AlexMist
В 8 ой ноде будет импорт?
AlexMist
Вроде уже есть?
Alexander
еще нет
Alexander
человек тут скрин скинул)
Alexander
И ещё. Вот я уже описывал своё приложение. Пишу в поле запрос и отправляю его на бекенд. Лучше сразу открыть соединение с БД или при каждом обращении открывать соединение, делать запрос, а потом закрывать?
Alexander
а для чего они в ноде?
они же так на так проксируют собой commonJS?
и destructuring тащит: const {a,b} = require('export-a-b-c')
Alexander
сразу
Smooth Operator
Alexander
а вообще надо смотреть в доках либы - там говорят что когда и куда закрывать
Alexander
короче node.js нормально хранит ресурсы - не стоит их закрывать-открывать все время)
Alexander
Работаю с mssql и на клиенте можно самому вписать строку подключения. Так вот как лучше? Как получил её, запустить и держать до конца или при каждом обращении?\
Alexander
до конца
Alexander
иначе жоско тормозить будет
Alexander
ну или мягко. но тормозить:)
AlexMist
Тайм-аут обычно
Alexander
зачем?
A
Alexander
👍🏻
Alexander
AlexMist
Допёр, бабел получается нужен теперь только для рендера на сервере?
A
Ну так мне нужно понять в каой момент осуществлять подключение
смотри, приложение запускается, ты "делаешь" пяток соединений с базой и кладёшь... ну в некий объект, который следит за тем, чтобы все пять соединений были живы, борды и веселы.
Когда тебе нужно соединение с базой - спрашиваешь у этого чудесного объекта одно соединение. Он подумает и даст тебе какое-нибудь. Когда закончишь с ним работать - отдашь его обратно.
Alexander
там все хлещще
Alexander
че вы пугаете
Alexander
пять соединений
Alexander
человек ща реально 5 коннекшенов откроет
A
Этот чудесный объект называется connection pool. И с поправкой на джаваскриптовую однопоточность работает намного проще))
Alexander
там фишка в том, что connectionString ему с клиента приходит
Alexander
A
mssql пять соединений не сможет?))
Alexander
хз. я только с pg:)
Alexander
совет-то ок
Alexander
но ему нужно открыть соединение в хендлере роута
Alexander
Чёрт, серьёзно. Ведь у меня могут подключиться несколько пользователей и у каждого своё подключение...
Alexander
т к коннстринг приедет от клиента
Alexander
Я думал завести переменную, которая будет хранить строку подключения, но тогда получается, что она будет переписываться...
Alexander
парни, есть какой-нить бойлерплейт нормальный с нормальным?
require('./db')
app()
Max
В чем проблема создать один объект, хранящий коннект, и передавать его, когда он нужен?
Alexander
а то мы не объясним
Alexander
потому что у него разные коннекты
Alexander
и разные connectionString
A
А, ну если так, то самый прямой путь - открывать соединение при каждом запросе. Не самый эффективный способ, но и не так, чтобы сильно страшно. Тем более, насколько я понимаю, цель учебная)
Потом поймешь, как соединения лучше кэшировать.
Max
Конект стринг?
Max
А
Max
Ты уже написал
Alexander
но ему нужно открыть соединение в хендлере роута
Alexander
т к коннстринг приедет от клиента
Max
Пропустил этот момент
Alexander
у тебя какая-то авторизация будет?
A
А, ну если так, то самый прямой путь - открывать соединение при каждом запросе. Не самый эффективный способ, но и не так, чтобы сильно страшно. Тем более, насколько я понимаю, цель учебная)
Потом поймешь, как соединения лучше кэшировать.
тут штука в том, что соединение штука всё же дорогая, и ты не можешь (или не хочешь) кэшировать, условно, 1000 коннектов к базе/базам. Т.е. у твоего коннекта более сложный жизненный цикл будет.
A
Поэтому открывай каждый раз при новом коннекте от пользователя. Потом разберешься как сделать правильно
Alexander
Alexander
Никак не понять. Могут 10 человек, а может 1
Alexander
вопрос
Alexander
а зачем клиентам вводить строку подключения вручную?
Alexander
а по*** ваще
Alexander
лепи че хочешь
Alexander
главное отчет
Alexander
открывай коннекшн в хендлере - норм
Alexander
это будет только препод смотреть
Alexander
ну тогда наверное проще знать вообще какие могут быть коннекшн стринги, хранить их в массиве, на старте открыть все, а юзер будет выбить в <select> теге что он хочет
Alexander
патамучта тыщу коннекшенов никто не делает никогда
нигде
кроме универа
там делают
там можно)
Alexander
можно потом этот вариант оптимизировать - хранить тот же массив строк и к нему сопоставить коннекшены. если строка есть, а коннекшена нет (null например), то быстренько его поднимаем и дальше храним и переиспользуем
Alexander
Alexander
варик
Alexander
у нас преподы хранили ответы к тестам в базе
дать студентам самим вводить коннстринг и попасть в преподскую базу - ^^
Alexander
Только вот как дать каждому поключению уникальный токен? Юзать socket.io?
cloudedbe
Надо тестировать апи. Т.е запускать нечто, что делало бы запросы и проверялo результаты. Есть какой-нибудь другой путь, кроме как использовать нативны http или chai-http https://github.com/chaijs/chai-http?
Kanat
как написать в чат код чтоб красиво получилось?
Roman
Дай ссылку на pastebin
Roman
Красиво не получится, но можешь использовать три символа ` вначале и конце