Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 July 28

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
Он может логировать за раз куда угодно. В файлы, в консол, в эластик
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
Стандартный только для отладки
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
Логерами не пользовался. Я так понимаю, что они работают: это npm-пакет, устанавливаем, подключаем, затем он как-то отслеживает активность на сервере и логи в виде текстовых файлов записывает на сервере в папке.

Это я про простой вариант, верно?
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
Да куда угодно записывает
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
Лучше не в файлы а в какую-то систему для логов
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
Почитай про тот же Winston
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
Ага, ну логеры, это npm пакеты, да?
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
В итоге мы можем постоянно использовать console.dir вместо console.log? или как.
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
У меня вот опять проблема с тем, что мне клиент почему-то пустой объект отправляет, хотя payload есть.

Локально запущенный клиент отправляет POST-форму на локально запущенный сервер на ноде. Клиент на localhost:3010, а сервер на localhost:5000.

Проблема в этот раз в том, что к клиенту у меня нет доступа, там встроенные скрипты, это AMP-pages.

На сервере у меня такой код, это koajs:

module.exports = function postHandler(key, url) {
 return async function (ctx, next) {
   ctx.set('Access-Control-Allow-Origin', 'http://localhost:3010');
   ctx.set('Access-Control-Allow-Credentials', true);
   ctx.set('Content-Type', 'application/json');

   console.dir(ctx.request.body, { showHidden: true });
   ctx.status = 200;
   ctx.body = ctx.request.body;


* ctx.request.body - пустой объект приходит.

* заголовки через ctx.set я вынужден добавлять, иначе ошибка CORS в консоли браузера вылезает.

* Работает нормально на реальном сервере, на heroku. Но локально почему-то пустой объект приходит на сервер.
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
Что можно такого попытаться добавить в код на ноде, чтобы payload доходил?
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
Мне вот хочется с логерами в скором времени разобраться, а еще бы вот научиться продвинутому пользованию консоли  в хроме(+Sources + Network + Perfomance + Memory вкладки, и другие). Я вот слежу периодически за обновлением devtools в хроме, там столько разных крутых фишек есть, а я все по старинке console.log пользуюсь.
источник

DL

Daniil Loban in NodeUA - JavaScript and Node.js in Ukraine
'use strict';

let pass = ''

const write = s =>  {
 process.stdout.write(s);
 if (pass) console.log({pass})
}

const timeout = setTimeout(() => {
 console.clear();
 process.exit(0)
}, 10000)

process.stdin.on('data', chunk => {
 pass += chunk;
 pass=pass.replace('\n', '');
 clearTimeout(timeout);
 console.clear();
 write('\x1b[3A\x1b[30C');
 process.exit(0)
})

console.clear();
console.log('\x1b[10;10H');
console.log(`
                     ┌────────────────────┐
                     │ LOGIN:             │
                     └────────────────────┘
`)
write('\x1b[3A\x1b[30C');
источник

DL

Daniil Loban in NodeUA - JavaScript and Node.js in Ukraine
немного поменял логику
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
Ага, но кажется твой пример не отсылает и не сохраняет введенное значение.
источник

DL

Daniil Loban in NodeUA - JavaScript and Node.js in Ukraine
у меня печатает его после ввода
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
В итоге я убрал коа и написал просто на ноде и это работает:

server.on('request', (req, res) => {
 let body = '';

 req.on('data', function (data) {
   body += data;
 });

 req.on('end', function () {
   let post = qs.parse(body);
   console.log(post);
   res.statusCode = 200;
   res.end('Not bad');
 });
});

Теперь я вижу payload на сервере. Непонятно почему с коа не работает, думаю, что проблема там в асинхронности или в koa-parser.
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
А как введенное в консоли значение отправить например на локальный сервер, ты знаешь?
источник

DL

Daniil Loban in NodeUA - JavaScript and Node.js in Ukraine
пост запрос отправить думаю, нужно только придумать как проверить
источник

DL

Daniil Loban in NodeUA - JavaScript and Node.js in Ukraine
источник

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
Это сработает?
Ну а как сделать этот post-запрос в фоне, чтобы не вводить код самого запроса в консоль?
Например в гитхабе кажется запрашивает иногда емайл и пароль в консоли, ну и наверное затем куда-то отправляет. Мы же не сами отправляем, а там какая-то логика уже заранее написана, это как сделать?
источник