如何调试 nodejs API
How debug a nodejs API
我一直在做一个 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 节点调试器。
对于较新的 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。
解决方案(即使它不是真正的解决方案)是将 console.log
添加到我要调试的行。
我一直在做一个 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 节点调试器。
对于较新的 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。
解决方案(即使它不是真正的解决方案)是将 console.log
添加到我要调试的行。