era*_*ran 6 javascript node.js express graphql
我成功地设置了记录 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);
}
}
}));
Run Code Online (Sandbox Code Playgroud)
如何设置一个通用函数,即使没有错误,也可以访问请求和响应?
编辑:我已设法通过以下方式记录所有请求:
function loggingMiddleware(req, res, next) {
if (req.url.startsWith('/graphql')) {
winston.debug('REQUEST: ', req.body);
}
next();
}
app.use(loggingMiddleware);
Run Code Online (Sandbox Code Playgroud)
在我打电话之前app.use('/graphql'),但仍然不知道如何运行“post graphql Handling”处理程序来记录响应。
您可以req.send()在express中代理该功能。
app.use(function (req, res, next) {
let originalSend = res.send;
res.send = function (data) {
console.log(data);
originalSend.apply(res, Array.from(arguments));
}
next();
})
Run Code Online (Sandbox Code Playgroud)
这只是为了向您展示如何实现这样的目标。
我看到你使用winston,所以我建议你使用express-winston。
另外,请检查一下。
| 归档时间: |
|
| 查看次数: |
9980 次 |
| 最近记录: |