我做了一个简短的、独立的例子来说明我在 express-bunyan-logger 上遇到的问题。
我正在尝试将express-bunyan-logger添加为中间件,并利用includesFn
将查询字符串和正文记录为自定义字段。
const app = express();
const graphqlLogger = require('express-bunyan-logger')({
name: 'graphql-logger',
includesFn: (req, res) => {
const includes = {};
if (req.body) includes.req_body = JSON.stringify(req.body);
if (req.query) includes.req_query = JSON.stringify(req.query);
return includes;
},
});
app.use(graphqlLogger);
问题是,即使是http://localhost:4000/graphql?query=query%20%7B%0A%20%20books%20%7B%0A%20%20%20%20title%0A% 形式的 URL 20%20%7D%0A%7D,req_query
和req_body
字段始终为空。如果我检查在调试器中req
传递给的对象includesFn
,它不包含 req.query 或 req.params 的任何值。
我确定我在这里做错了什么;如何includesFn
正确记录查询字符串和正文?