我希望有一个方便的"节点shell"加载了一些常用的模型,以便我可以与它们和数据库进行交互。似乎node inspect app_shell.js
无法导入(require
)脚本,而声称已经这样做了。
文件结构:
./test
app_shell.js
user.js
app_shell.js
内容:
console.log("Script loads useful models for manual interaction in shell.");
var User = require("./user");
debugger;
user.js
内容:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.User = {some: "user"};
使用debug运行app_shell.js:
$ 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 }
我必须有一些微不足道的东西。
答案 0 :(得分:0)
节点调试已启动,但尚未运行该文件。当您键入repl
时,它不会在调试器点输入文件,而是在顶部输入。 var User ...
导致User
被声明但未初始化,因此undefined
的值。
<强>解决方案:强>
按c
继续debugger
点,然后repl
开始REPL会话。