我正在努力开始使用nuxt + express。我有这里的代码:https://github.com/nuxt/express,与npm run dev
运行良好。我想调试API代码。
在users.js文件中:
import { Router } from 'express'
var router = Router()
// Mock Users
const users = [
{ name: 'Alexandre' },
{ name: 'Sébastien' }
]
/* GET users listing. */
router.get('/users', function (req, res, next) {
res.json(users)
})
/* GET user by ID. */
router.get('/users/:id', function (req, res, next) {
var id = parseInt(req.params.id)
if (id >= 0 && id < users.length) {
res.json(users[id])
} else {
res.sendStatus(404)
}
})
export default router
我在两个get方法中都设置了断点。我尝试过使用WebStorm以及Visual Studio Code,但在这两种情况下都没有遇到断点。
我的launch.json文件如下所示:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceRoot}\\build\\main.js"
}
]
}
和package.json:
{
"name": "learn-nuxt",
"version": "1.0.0",
"description": "Nuxt.js project",
"author": "naveed",
"private": true,
"scripts": {
"dev": "backpack",
"build": "nuxt build && backpack build",
"start": "cross-env NODE_ENV=production node build/main.js",
"precommit": "npm run lint",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore ."
},
"dependencies": {
"axios": "^0.16.1",
"backpack-core": "^0.3.0",
"cross-env": "^4.0.0",
"express": "^4.14.0",
"nuxt": "~0.10.6",
"source-map-support": "^0.4.14"
},
"devDependencies": {
"babel-eslint": "^7.1.1",
"backpack-core": "^0.3.0",
"eslint": "^3.13.1",
"eslint-config-standard": "^10.2.1",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^2.0.1",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-node": "^4.2.2",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1"
}
}
这是我在VS Code控制台中看到的:
Debugging with legacy protocol because Node.js v7.4.0 was detected.
node --debug-brk=42131 --nolazy build\main.js
Debugger listening on 127.0.0.1:42131
Server listening on 127.0.0.1:3000
DONE Compiled successfully in 5591ms9:28:41 PM
> Open http://127.0.0.1:3000
我发现添加了
"protocol": "inspector"
到launch.json中的配置修复了这个问题,并允许命中断点。