作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我读了这篇文章 AsyncLocalStorage for Easy Context Passing in Node.js
我尝试在我的日志中获取 logId,但我不能,因为 asyncLocalStorage.getStore()
返回未定义。
似乎上下文在 MyLogger 类中丢失了。
如何解决?
这是我的 express 应用程序
const asyncLocalStorage = new AsyncLocalStorage();
app.use((req, res, next) => {
asyncLocalStorage.run(new Map(), () => {
asyncLocalStorage.getStore().set("requestId", uuid());
next();
});
});
module.exports.asyncLocalStorage = asyncLocalStorage;
这是 MyLogger 类
static log(logId, className, text) {
const { asyncLocalStorage } = require("../server.js");
const store = asyncLocalStorage.getStore()
console.log(this._getBaseStaticLog(logId, logTypes.LOG, text, className));
}
最佳答案
我解决了这个问题。
问题是我因为 bodyparser
失去了上下文中间件。
我在设置上下文之前更改了该中间件,现在可以了。
曾是:
app.use((req, res, next) => {
asyncLocalStorage.run(new Map(), () => {
asyncLocalStorage.getStore().set("requestId", uuid());
next();
});
});
// body parser
app.use(
bodyParser.json({
limit: "10mb"
})
);
改变:
// body parser
app.use(
bodyParser.json({
limit: "10mb"
})
);
app.use((req, res, next) => {
asyncLocalStorage.run(new Map(), () => {
asyncLocalStorage.getStore().set("requestId", uuid());
next();
});
});
现在好了)
关于node.js - Nodejs AsyncLocalStorage getStore() 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64330910/
我想使用 AsyncLocalStorage在 NestJs Interceptor : export interface CallHandler { handle(): Observable
我读了这篇文章 AsyncLocalStorage for Easy Context Passing in Node.js 我尝试在我的日志中获取 logId,但我不能,因为 asyncLocalSt
我是一名优秀的程序员,十分优秀!