【问题标题】:How debug a nodejs API如何调试 nodejs API
【发布时间】:2020-10-20 11:03:46
【问题描述】:

我一直在做一个 vue 项目。

这个vue项目使用我创建的nodejs API,简单来说,它们是两个完全不同的项目,它们不在同一个目录中,它们是分开启动的。

问题是每当我使用node --inspect --debug-break event_type.controller.js 调试路由时,例如命名为:

"/eventtype/create"

exports.create = (req, res) => {
  const userId = jwt.getUserId(req.headers.authorization);

  if (userId == null) {
    res.status(401).send(Response.response401());
    return;
  }
  // Validate request
  if (!req.body.label || !req.body.calendarId) {
    res.status(400).send(Response.response400());
    return;
  }

  const calendarId = req.body.calendarId; // Calendar id

  // Save to database
  EventType.create({
    label: req.body.label,
  }).then((eventType) => {
    Calendar.findByPk(calendarId).then((calendar) => {
      eventType.addCalendar(calendar); // Add a Calendar
      res.status(201).send(eventType);
    }).catch((err) => {
      res.status(500).send(Response.response500(err.message));
    });
  }).catch((err) => {
    res.status(500).send(Response.response500(err.message));
  });
};

即使我在 const userId = jwt.getUserId(req.headers.authorization); 上创建断点

并且从我的 vue 应用中我触发了 api createEventType 事件,我的断点没有通过。

此外,当我使用调试器在第一行的断点后按 f8 时,我的文件会自动关闭。

我不使用 VS Code 而是使用 Vim 进行编码,但我听说 Vs Code 可能允许以简化的方式来调试 nodejs 应用程序。

注意:我使用 V8 节点调试器。

【问题讨论】:

  • 不是你要问的,但我只是使用console.log(userId) 进行基本调试。
  • 我建议使用console.log()进行debbing

标签: javascript node.js vue.js google-chrome-devtools node-debugger


【解决方案1】:

对于较新的 NodeJS 版本(> 7.0.0),您需要使用

node --inspect-brk event_type.controller.js

而不是

node --inspect --debug-break event_type.controller.js

在应用程序代码的第一行中断。请参阅https://nodejs.org/api/debugger.html#debugger_advanced_usage 了解更多信息。

【讨论】:

  • @eoi 嗨,其实我已经用一个简单的console.log解决了这个问题,我也试过你给我的解决方案,但结果和以前一样。我认为我的项目可能有些过于具体,无法正常调试。
【解决方案2】:

解决方案(即使它不是真正的解决方案)是将console.log 添加到我要调试的行中。

【讨论】:

    猜你喜欢
    • 2018-11-12
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 2023-03-03
    • 2014-04-15
    相关资源
    最近更新 更多