Подтвердить что ты не робот

Экспресс-модуль отладки не работает

Я нахожусь в Windows, пытаясь использовать модуль отладки https://www.npmjs.org/package/debug

Я установил экспресс-генератор

var debug = require('debug')('MyApp');
debug('log'); // I don't see this on console

Я попытался отладить переменную

console.log(debug); // I get function disabled() {}

Как включить его? не должно быть включено по умолчанию?

4b9b3361

Ответ 1

Вывод функций отладки, созданных модулем debug, отображается только при установке соответствующей переменной среды при запуске script. Это то, что позволяет выборочно включать отладочный вывод, чтобы он не являлся всем или ничем способом отображения отладочной информации. Это похоже на то, как ядро ​​node.js работает для отображения внутренней информации отладки на консоли.

Итак, в вашем примере вам нужно выполнить это в командной строке: DEBUG=MyApp node foo.js, где foo.js - ваш script содержащий var debug = require('debug')('MyApp');.

Для Windows вам нужно сделать set DEBUG=MyApp в командной строке, а затем node foo.js.

Ответ 2

Если вы хотите установить его в свой js-код,

MyApp-debug.js

#!/usr/bin/env node

process.env['DEBUG'] = 'myapp:server';
var debug = require('debug')('myapp:server');

// ...
  • Я считаю это полезным, когда есть единственный исполняемый файл shebanged (на окнах вам нужно установить node для открытия файлов .js)

Ответ 3

Windows не устанавливает переменные среды так, как это делают Linux и другие.

Решение:

set DEBUG=my-application
npm start

Ответ 4

В окне установлено DEBUG = * или ваше настроенное имя для отладки, например. MYAPP. Во всех js файлах, когда я хочу, чтобы debug был настроен так же, как следующий оператор.

var debug = require('debug')('MyApp'); 

требуется ( 'отладка') ( 'MyApp');//Это очень имп. Вы должны настроить некоторое имя для отладки

при выполнении в windows

D:>set DEBUG=MyApp

D:>node <your app file>.js 

D:> node foo.js

Ответ 5

Я тоже пытался понять эту проблему, и мне кажется (по крайней мере, на моей машине с Windows 10), что способ сделать это (по крайней мере, из командной строки, отличной от linux, я использую сборку WebStorm в командной строке) должен включать '&' оператор. Так напишите что-нибудь вроде этого:

set DEBUG=my-app & node index.js