deng-jie

转载:https://www.jianshu.com/p/6fd5a476d135

调试 Express 代码

初始化 express 工程。

$ mkdir express-demo
$ cd express-demo
$ npm init -y
$ npm install express

  

创建 index.js 文件,内容如下

const express = require(\'express\')
const app = express()

app.get(\'/\', (req, res) => {
    const a = 1
    const b = 2
    const c = a + b
    res.end(`a + b = ${c}`)
})

app.listen(\'3000\', function () {
    console.log(\'服务器已启动,端口\', 3000)
})

 

方法一:request: launch

参考前文 Vscode 调试,添加配置文件如下:

// .vscode/launch.json
{
    "type": "node",
    "request": "launch",
    "name": "Express launch",
    "program": "${workspaceFolder}/index.js"
}

  

express 项目有个入口文件 index.js,平时启动服务需要输入 $ node index.js,调试的时候使用内置的调试器程序启动 index.js。

request: "launch" 表示使用调试器程序启动 index.js 文件。

方法二:request: attach

正常启动 Express 服务。

 
图1

此时突然想调试某个接口,如果使用 launch 方式,需要 Ctrl + C 停掉当前服务,然后用调试器程序重新执行 index.js。但是现在不想重启服务,又要对代码进行调试,可以使用 attach 方式。

添加调试配置文件如下。

// .vscode/launch.json
{
    "type": "node",
    "request": "attach",
    "name": "Express attach",
    "processId": "${command:PickProcess}",
    "port": 9229
}
  • request: "attach" 表示 Nodejs 程序已经在运行着,待会启动调试器程序,去关联这个已经运行的 Nodejs 程序;
  • processId: "${command:PickProcess}" 进程ID,后面花括弧里的东东不用管,意思当你点击 Vscode 调试面板绿色箭头(下图红字1)时会弹出一个下拉框让你选择:调试器程序关联哪一个正在运行的 Nodejs 程序(下图红字2)。
 
图2

我的机器上起了好几个 Nodejs 程序,跑 express-demo 的是第二个 Nodejs 程序,点击之后再看看终端,会打印一些新的消息,其中 Debugger attached 表示调试器程序已经和正在运行的 Nodejs 程序关联起来了。

 
图3

此时在 Vscode 中的源码里打个断点,在浏览器中访问 localhost:3000 可以看到进入断点了。

 
图4

调试 nodemon 代码

还是

分类:

技术点:

相关文章:

  • 2021-11-30
  • 2021-11-30
  • 2022-12-23
  • 2022-02-02
  • 2021-11-30
  • 2021-12-10
  • 2022-02-27
猜你喜欢
  • 2021-07-23
  • 2022-12-23
  • 2022-01-05
  • 2021-08-31
  • 2021-09-13
  • 2021-07-12
  • 2021-11-17
相关资源
相似解决方案