2017-06-17 2 views
0

Ich wollte eine Bequemlichkeit "Knoten Shell", die einige häufig verwendete Modelle geladen, so dass ich mit ihnen und der Datenbank interagieren konnte. Scheint, node inspect app_shell.js nicht zu importieren() das Skript, während behauptet wird, dies getan zu haben.Knoten debuggen/inspect requires returns undefined

Dateistruktur:

./test 
    app_shell.js 
    user.js 

app_shell.js Inhalt:

console.log("Script loads useful models for manual interaction in shell."); 
var User = require("./user"); 
debugger; 

user.js Inhalt:

"use strict"; 
Object.defineProperty(exports, "__esModule", { value: true }); 
exports.User = {some: "user"}; 

Lauf app_shell.js mit debug:

$ node inspect app_shell.js 
< Debugger listening on ws://127.0.0.1:9229/5f48d8f1-a77b-4a1c-838e-7fb51a3b3337 
< For help see https://nodejs.org/en/docs/inspector 
< Debugger attached. 
Break on start in app_shell.js:1 
> 1 (function (exports, require, module, __filename, __dirname) { console.log("Script loads useful models for manual interaction in shell."); 
    2 var User = require("./user"); 
debug> repl 
Press Ctrl + C to leave debug repl 
> User 
undefined 
> User = require("./user"); 
undefined 
> User 
{ User: Object, __esModule: true } 

Es muss etwas Triviales fehlen, das ich vermisse.

Antwort

0

Der Knoten debug hat gestartet, aber die Datei wurde noch nicht ausgeführt. Wenn Sie repl eingeben, wird die Datei nicht am Debuggerpunkt, sondern an der Spitze eingegeben. var User ... hat verursacht User zu deklarieren, aber nicht initialisiert, daher der Wert undefined.

Lösung:

Press c zu Ihrem debugger Punkt fortzusetzen und dann repl die REPL-Sitzung zu starten.