我正在使用 Node.js 开发一个 RESTful 服务器,使用 Express 作为框架,暂时使用 Winston 作为记录器模块。
该服务器将处理大量并发请求,并且能够使用“请求 ID”之类的内容跟踪每个特定请求的日志条目对我来说非常有用。直接的解决方案是每次我想要创建日志条目时,将此 ID 添加为另一条日志记录信息,但这意味着将“请求 ID”传递给服务器使用的每个方法。
我想知道是否有任何 node.js/javascript 模块或技术可以让我以更简单的方式完成此操作,而无需携带每个特定请求的请求 ID。
如果你自动递增,你以后的日志分析将无法唯一标识请求,因为不同的实例会产生冲突的ID,并且重新启动应用程序会自动导致ID冲突。
这是另一种可能的解决方案。
安装cuid:
npm install --save cuid
然后在你的主应用程序文件中:
var cuid = require('cuid');
var requestId = function requestId(req, res, next) {
req.requestId = cuid();
next();
};
// Then, at the top of your middleware:
app.use(requestId);
现在,您将获得一个不太可能发生冲突的友好请求 ID,并且您将能够唯一地标识您的日志分析和调试请求,甚至跨多个实例和服务器重新启动也是如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)