【问题标题】:Visual studio code nodejs debugging not workingVisual Studio代码nodejs调试不起作用
【发布时间】:2018-02-04 05:36:50
【问题描述】:

我不熟悉使用 Visual Studio 代码并尝试调试节点应用程序。我已经生成了 launch.json 文件,如下所示:

"configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceRoot}/server/app.js"
        }
    ] 

这是我正在尝试调试的方法,它在 testController.js 中:

exports.index = function(req, res) {
    res.send('NOT IMPLEMENTED: Site Home Page');
};

我还添加了这个控制器到路由,并添加了路由到 express 应用程序如下:

test.js

const express = require('express');

    const router = express.Router();

    var test_controller = require('../controllers/testController');

    router.get('/',test_controller.index);

    module.exports = router;

和 app.js :

var index = require('./routes/test');
//Add routes middlewares
app.use('/',index);

我已将断点添加到exports.index。当我点击调试按钮时,它直接命中断点,但是当我从 Postman 调用相同的路由来测试 api 时,它永远不会命中断点。任何建议。

【问题讨论】:

  • 你的断点是在res.send('NOT IMPLEMENTED: Site Home Page');还是exports.index = function(req, res) {?如果它在exports.index = function(req, res) { 上尝试将它放在res.send
  • 感谢@kgangadhar。现在可以了。

标签: node.js express debugging visual-studio-code


【解决方案1】:

您在方法定义上放置的断点将在服务器启动期间在启动时命中,而在方法内的行上添加的断点将在调用方法时命中。

在您的情况下,您将断点添加到 exports.index = function(req, res) { 而不是 res.send('NOT IMPLEMENTED: Site Home Page');。当您点击调试按钮时,它的点击和调用相同的方法时,内线没有点击。确保在要检查的行中添加断点。

【讨论】:

    猜你喜欢
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2017-07-11
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    相关资源
    最近更新 更多