
MaXG
05.01.2018
16:55:26
Что тебе мешает импортировать класс, который за тебя инициирует логер?
Импорт происходит только один раз
В рамках одного пакета, пстественно

Alex
05.01.2018
16:56:15
Так мне надо контекст таскать не в зависимости от того, где он импортируется, а в зависимости от запроса

Google

anatolii
05.01.2018
16:56:18
let debug = require('debug')('main');
debug('blah blah') - будет иметь префикс main в логах
где надо подключаешь и пользуешься

MaXG
05.01.2018
16:56:52

anatolii
05.01.2018
16:57:03
с ватсоном тоже самое можно сделать

Muhammad
05.01.2018
16:57:08
/stat@combot

anatolii
05.01.2018
16:57:17
мне просто эта субьективно удобней
айди запроса можно генерить в начале всего через мидлвер и потом его всегда использовать
https://solidgeargroup.com/express-logging-global-unique-request-identificator-nodejs
нечто такое нужно?

Combot
05.01.2018
17:02:54
combot.org/chat/-1001041204341
combot.org/chat/-1001041204341

aziret
05.01.2018
17:06:25
/stat@combot

Combot
05.01.2018
17:06:25
combot.org/chat/-1001041204341

Google

Alex
05.01.2018
17:07:40
Да ну ёлки, не то же ?
Если на пальцах, то хочется вот так:
function setIdMW(req, res, next) {
req.__id = randomId();
next();
}
router.post('/users', (req, res, next) => {
const {__id} = req;
logger.debug(`${__id}: calling /users with arguments: ...`); // (1)
const newUser = UserModel.createUser(req.body); // (2)
res.json(newUser);
next();
});
Комменты:
Специально использую тупой прямой подход с логгером и формированием строчки вручную, чтобы всё прямо в примере было.
1 - типа что-то мы здесь логгируем. Важно, что в экспрессе - тут всегда есть где взять контекст - req, res на выбор
2 - a вот сюда я тоже хочу прокинуть логгер, потому что процесс создания пользователя может быть дофига сложным и я там тоже что-то хочу логгировать понимая, в каком именно запросе, с какими параметрами, всё это произошло.
Самый прямой путь решить 2 - это
const newUser = UserModel.createUser(req.body, __id);
Вот


Vint
05.01.2018
17:08:51
Посмотри в сторону CLS https://www.npmjs.com/package/continuation-local-storage
Но если используются промисы с a/a - оно работать не будет.
В этом случае стоит посмотреть на форк https://www.npmjs.com/package/cls-hooked, который базируется на экспериментальном (!) api ноды async_hooks
Ко второму пакету написан хороший дисклеймер, стоит почитать и проникнуться. Или нет)

Alex
05.01.2018
17:43:33

Igor
05.01.2018
17:46:59
блэт а курсы с itvdn можно как нить сохранить? или сливы есть у кого нибудь?
до 11 числа врядли успею

Vladyslav
05.01.2018
17:49:51

Vladislav
05.01.2018
17:58:44
там до 14 вроде

Igor
05.01.2018
17:59:52
у меня до 11

Никита
05.01.2018
18:12:03
Там реализацию JWT от циски сломали, видели?

Vitaly
05.01.2018
18:12:30

Никита
05.01.2018
18:12:35
https://www.npmjs.com/package/node-jose
Бага в том, что оно слепо доверяет самоподписанным JWT (это если коротко).
0.11.0 пофикшен, новая версия обратно несовместима со старой, так что сама обновлением не прилетит.
(я уже говорил, что JWT — кусок говна?)
Самоподписанные — не в смысле none, а те, у которых публичный ключ в хедере.
Линка: https://twitter.com/FiloSottile/status/949237064998047744

Ҫѐҏӗѫӑ
05.01.2018
18:20:46
jwt не нужен
причем в обеих расшифровках аббривиатуры

Google

Rafael
05.01.2018
18:25:36
есть же https://github.com/paragonie/past

Никита
05.01.2018
18:26:23
paragonie кстати молодец, посмотрю-ка что там.

Rafael
05.01.2018
18:26:35
правда я его еще не использовал

Cenator
05.01.2018
18:26:43

Rafael
05.01.2018
18:26:45
и вроде имплементация только для пхп есть

Никита
05.01.2018
18:26:57
Емнип он в пхп рнг починил.

Ҫѐҏӗѫӑ
05.01.2018
18:27:44
што

Cenator
05.01.2018
18:28:37
Хех, ну тут очевидно

Никита
05.01.2018
18:30:40
Посмотрел на PAST. Там нету адских говен как в JWT, но нужности это ему не прибавляет, кмк.
Кстати
https://twitter.com/WayneVaughan/status/949116358356172800

Rafael
05.01.2018
18:32:32

Никита
05.01.2018
18:32:40
Оттуда же: https://twitter.com/dshaw/status/949117187670724608

Ҫѐҏӗѫӑ
05.01.2018
18:34:08
И как тебе?
я не понимаю как они платформ-агностик с реализацией только на похапе. как-то так
дальше не читал

Rafael
05.01.2018
18:35:04
у них же есть документ с описанием работы протокола

Google

Rafael
05.01.2018
18:35:05
https://github.com/paragonie/past/tree/master/docs

Ҫѐҏӗѫӑ
05.01.2018
18:35:13

Admin
ERROR: S client not available

Ҫѐҏӗѫӑ
05.01.2018
18:36:56
а, это ж прямо сейчас

Никита
05.01.2018
18:38:14
а, это ж прямо сейчас
Есть прошлогодняя версия слайдов только: https://speakerdeck.com/rdegges/jwts-suck-and-are-stupid

Vladislav
05.01.2018
19:04:52

Веселый
05.01.2018
23:22:45
Добрый вечер
Кто подскажет чат с верстальщиками?

Pauline
05.01.2018
23:24:01
@css_ru

Веселый
05.01.2018
23:24:26
Спасибо большое

Tony
06.01.2018
00:54:23
всем привет, кто может помочь с js проектом ? помогу криптой

Alexander
06.01.2018
01:18:05
чо делать-то?

Tony
06.01.2018
02:19:22
есть на visio js плагин один который надо допилить под мою нужду, чтобы не спамить в личку

Maxim
06.01.2018
02:33:34
кто пишет тесты к микросервисам ?
допустим мне нужно протестировать два микросервиса. Первый спрашивает что-то у второго. Вы бы заводили отдельный нпм пакет с тестами, который их запускает?
или в таком случае, это "папочка" с интеграционными тестами внутри первого пакета
если нужно проверить io микросервиса - куда бы вы разместили сами тесты

Дмитрий
06.01.2018
03:04:54
Это для юнит-тестов
Более глобальные тесты можно выносить отдельно, если требуется

Google

Maxim
06.01.2018
03:13:10
смотри, сервис Б запрашивает А, Если я хочу протестировать что сервис Б правильно запросил А и записал что-то в лог. Такой тест в отдельном пакете ?
который честно запускает их как node.js процессы
тогда сложность - придётся придумать коммуникацию между модулем Б, что бы заставить его сделать запрос по внешим причинам и модулем интеграционного тестирования
в обратном случает, если тесты Б разместить в Б/тесты/ - мне нужны тайпинги и параметра инициализации сервиса А - что повлечёт зависимость сервиса Б на уровне нпм пакетов от сервиса А
либо выность кучу кишков из сервиса А и Б в отдельные пакеты для шаринга с пакетом тестов
ну не кучу, ладно - пару файлов
просто - так мозг запутается, чё-где

Дмитрий
06.01.2018
03:18:35
Интересный вопрос

Maxim
06.01.2018
03:23:36
вот уже, что бы проверить гет/пост запросы к веб-серверу, мне приходится выность логику формирования запросов из фронтенда в отдельный пакет - для шаринга между пакетами "веб-сервер/тест" и "фронтенд"

Дмитрий
06.01.2018
03:23:52
В принципе интеграция микросервисов вместе — это тоже микросервис, в предельном случае один общий условный our_platform в качестве ещё одного пакета и тестирование интеграции можно класть там же

Maxim
06.01.2018
03:24:29
хм.. тогда надо всё io выносить в пакеты
вебсокеты так же