2014-05-01 17 views
5

Próbuję dowiedzieć się, co jest nie tak z moich sesji (przy użyciu express-session), i znalazłem, że używa on debug module. Jednak nie mogę włączyć komunikatów debugowania. Mówi ona, że ​​debugowanie musi być włączone za pomocą zmiennej środowiskowej DEBUG, ale nie mogę jej uruchomić.Jak korzystać z modułu debugowania w węźle (Windows)?

Tutorial w README ma to zdjęcie:

enter image description here

Pod Windows otrzymuję "DEBUG nie jest poleceniem dla linii poleceń".

Więc próbowałem ustawiając zmienną środowiskową jawnie przy użyciu:

process.env.DEBUG = "*";

i nadal nic.

Co robię źle?

+0

'DEBUG = * node app' zadziała w linii poleceń: najpierw ustawi zmienną env, a polecenie wykona. Próbowałeś tego? –

+0

@TravelingTechGuy W systemie Windows mówi mi, że 'DEBUG' nie jest poleceniem. Ale teraz próbowałem go z MSYS i działa. Ciągle zapominam, że zależna od systemu dokumentacja węzła jest zwykle dostosowywana do systemów nix. – Domi

+3

zgadzam się, że dokumentacja naprawdę nie obejmuje/dba o Windows. Spróbuj użyć polecenia 'set', jak w' set DEBUG = * & node app' –

Odpowiedz

6

Jak Traveling Tech Guy sugerowane w komentarzu, w wierszu polecenia systemu Windows, właściwa składnia jest następująca:

set DEBUG=* & npm start 

Oczywiście można zastąpić npm start z co dowodzić trzeba uruchomić aplikację node.js. Po prostu pamiętaj, aby użyć polecenia set i nie zapomnij o & między tym poleceniem a uruchomieniem aplikacji Node.js!

+0

Oficjalna dokumentacja zawiera teraz również [note for windows] (https: //github.com/visionmedia/debug#windows-note), sugerując użycie 'set', a następnie uruchomienie' węzła'. Dzięki! – Domi

+0

Mam podobny problem na OSX, jeśli uwzględnię linię DEBUG = na moim polecenia uruchomienia węzła wszystko działa. Chciałbym użyć metody process.env.DEBUG dla ułatwienia obsługi, jednak nie jest ona pobierana przez moduł debugowania. Sprawdziłem var i jego ustawienie jest poprawne. – Joel

+0

@Joel Jeśli próbujesz ręcznie ustawić pola na 'process.env', nie jestem zaskoczony, że to nie działa. 'process.env' ma być interfejsem dostępu do zmiennych środowiskowych, więc jeśli nie chcesz włączyć bit' DEBUG = 'przed uruchomieniem aplikacji Node, po prostu ustaw zmienną środowiskową. Przykład: macOS: export DEBUG = express * ' –

3

Najpierw trzeba zainstalować moduł debugowania za pomocą

"npm install debug --save"

widać, że następująca linia została dodana do ty package.json (który ma wszystkie moduły NPM naładowane do Proyect)

następnie trzeba dodać ten moduł do importu do pliku, w którym chcesz uruchomić debugowanie

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

teraz musimy po prostu umieścić komunikat chcemy pisać, na przykład cześć

var debug = require('debug')('name_to_call'); 
debug('Hello'); 

(spróbuj wklejenie kodu powyżej bezpośrednio do pliku)

i teraz musimy tylko inicialize naszego serwera z węzła przy użyciu

"DEBUG=name_to_call node server.js"

+0

Ponownie ... to NIE działa w systemie Windows. Proszę rozważyć usunięcie lub modyfikację odpowiedzi, ponieważ nic nie wnosi ... Przepraszam ... – Domi

+1

@Domi Jeśli dasz mi trochę czasu, sprawdzę to w oknach :) to było długie 2 lata, więc może coś się zmieniło zobaczę i zmodyfikuję to jeszcze raz :) Byłem młodszym programistą, więc te 2 lata być może z tego powodu zrobią lepszą odpowiedź :) –

2

zainstalować pakiet debugowania z KMP w aplikacji węzła

npm install debug 

otworzyć PowerShell, a następnie

$Env:DEBUG="name_to_call" 

node path_to_js_to_execute.js 

Wewnątrz PGM

var debug = require('debug')('name_to_call'); 
1

W Babun windows Shell, biegnę,

npm

npm install debug --save 

Babun

DEBUG=http node app 

aplikacja.js

var app = express(); 
var debug = require('debug')('http'); 
var http = require('http').Server(app); 

var server = http.listen(app.get('port'), function() { 
    debug('listening on port ' + server.address().port); 
}); 

działa dla mnie jak urok.

Powiązane problemy