gpt4 book ai didi

javascript - 使用 express 记录所有 GraphQL 响应

转载 作者:搜寻专家 更新时间:2023-10-31 23:16:20 24 4
gpt4 key购买 nike

我设法设置日志记录 graphQL 错误:

app.use('/graphql', graphqlHTTP(request => {
return {
schema,
rootValue: {
request
},
formatError: error => {
const params = {
message : error.message,
locations: error.locations,
stack : error.stack
};
winston.error(`message: "${error.message}", QUERY: "${request.body.query}"`);
// Optional ${request.body.operationName} ${request.body.variables}
return (params);
}
}
}));

即使没有错误,我如何设置可以访问请求和响应的通用函数?

编辑:我已经通过以下方式记录了所有请求:

function loggingMiddleware(req, res, next) {
if (req.url.startsWith('/graphql')) {
winston.debug('REQUEST: ', req.body);
}
next();
}
app.use(loggingMiddleware);

在我调用 app.use('/graphql') 之前,但仍然不知道如何运行“post graphql handling”处理程序来记录响应。

最佳答案

您可以在 express 中代理 req.send() 函数。

app.use(function (req, res, next) {
let originalSend = res.send;
res.send = function (data) {
console.log(data);
originalSend.apply(res, Array.from(arguments));
}
next();
})

这只是为了向您展示如何实现这样的目标。

我看到你使用 winston,所以我建议你使用 express-winston .

另外,检查 this出。

关于javascript - 使用 express 记录所有 GraphQL 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41142471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com