【问题标题】:node debug / inspect require returns undefined节点调试/检查要求返回未定义
【发布时间】:2017-11-20 00:04:25
【问题描述】:

我想要一个方便的“节点外壳”,它可以加载一些常用模型,以便我可以与它们和数据库进行交互。似乎 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"};

使用调试运行 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 }

一定是我遗漏了一些微不足道的东西。

【问题讨论】:

    标签: javascript node.js debugging read-eval-print-loop


    【解决方案1】:

    节点调试已开始,但尚未运行文件。当您键入repl 时,它不会在调试器点输入文件,而是在顶部输入文件。 var User ... 导致 User 被声明但未初始化,因此 undefined 的值。

    解决方案:

    按c 继续您的debugger 点,然后按repl 开始REPL 会话。

    【讨论】:

      猜你喜欢
      • 2014-09-23
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 2015-04-03
      • 2020-06-01
      • 2019-03-13
      • 2013-07-14
      相关资源
      最近更新 更多