【发布时间】:2020-01-17 02:35:50
【问题描述】:
我正在制作一个非常简单的 nodejs 应用,用于接收 HTTP 请求和响应。
简而言之,是否可以为每个 HTTP 请求全局存储一个变量?所以,我不需要在我的应用程序的任何地方传递该变量。我知道有process.env。但是,如果另一个请求同时出现,它将被覆盖。
我需要这个的原因是我想记录每个请求。由于 JavaScript 是一个异步程序,所以当我查看日志时它是如此令人困惑。
例如:
- 收到请求(第一个请求)
- 收到请求(第二次请求)
- 处理结果为 zzzzzzz
- 处理结果为 yyyyyyy
那么,第 4 行的处理结果是属于 First Request 还是 Second Request?
我的代码示例
//In Init.js
var process = require("process");
http.createServer(function (request, res){
Console.log("Request Received");
//Parse the request
//Generate a unique ID for the requests
var RequestID = UUID();
console.log("Request ID is "+ RequestID); // I don't want to pass this via function parameter as there are so many function involved.
process.handler(Request);
}
//In process.js
function handler(Request){
//do sth with DB / API call and generate the result.
//the time required is various.
console.log("Process result is" + result);
}
【问题讨论】:
-
我不擅长node js。但通常我通过使用会话来解决这个问题。或者你可以使用响应式编程来解决它,让你的代码更干净freecodecamp.org/news/rxjs-and-node-8f4e0acebc7c
标签: javascript node.js logging