我正在以VS Code运行Node.js. 我console.log在“调试”窗口中看到的输出。
process.stdout.write去哪里?我在调试控制台或任何“输出”窗口中找不到它。
我的launch.json就是这样:
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/job.js"
}
]
}
Run Code Online (Sandbox Code Playgroud) 我正在处理一个带有 node.js 后端的新项目,我的morgan记录器工作得很好。起初我无法使用任何预定义的摩根模板(tiny,,short等)从中获得任何输出,没有任何内容传播到输出。我提供了自定义日志记录功能来验证是否在我的堆栈中调用了摩根:
app.use(morgan((tokens, req, res) => {
console.log('AAAAAAAAAAA');
return 'ABABABABABAA';
}, { stream: process.stdout }));
Run Code Online (Sandbox Code Playgroud)
序列AAAAAAAAAAA确实通过colsole.log内部日志功能传播到控制台输出(证明 morga 在每个请求上实际调用),但日志功能根本不提供它的ABABABABABA序列。
只要我能够想象预定义的格式可能会由于req/res对象的非常规名称而失败(顺便说一句,这不是一种情况),那么从记录器函数返回的纯文本显然应该直接传播到输出。
将摩根选项设置为{immediate: true}也不能解决问题。