Express 我可以在远程钩子后的环回中访问响应头吗?
我有一个环回模型,我使用afterRemote钩子将请求记录到keen.io 我还使用响应时间包将响应时间头添加到响应中 这工作正常,我不知道如何在响应中找到X-Response-Time头以便将其记录到keen.io 我可以通过以下任何方式访问响应标题吗Express 我可以在远程钩子后的环回中访问响应头吗?,express,loopbackjs,strongloop,keen-io,Express,Loopbackjs,Strongloop,Keen Io,我有一个环回模型,我使用afterRemote钩子将请求记录到keen.io 我还使用响应时间包将响应时间头添加到响应中 这工作正常,我不知道如何在响应中找到X-Response-Time头以便将其记录到keen.io 我可以通过以下任何方式访问响应标题吗 module.exports = function(Studio) { var isStatic = true; var isNotStatic = false; Studio.disableRemoteMethod(
module.exports = function(Studio) {
var isStatic = true;
var isNotStatic = false;
Studio.disableRemoteMethod('deleteById', isStatic); // DELETE /Studios/{id}
Studio.disableRemoteMethod('create', isStatic); // POST /Studios
Studio.disableRemoteMethod('upsert', isStatic); // PUT /Studios
Studio.disableRemoteMethod('updateAll', isStatic); // POST /Studios/update
Studio.disableRemoteMethod('updateAttributes', isNotStatic); // PUT /Studios/{id}
Studio.disableRemoteMethod('__create__ListenNps', isNotStatic);
Studio.disableRemoteMethod('__delete__ListenNps', isNotStatic);
Studio.disableRemoteMethod('__destroyById__ListenNps', isNotStatic);
Studio.disableRemoteMethod('__updateById__ListenNps', isNotStatic);
Studio.afterRemote('*', function(ctx, affectedModelInstance, next) {
var Keen = require('keen-js');
var client = new Keen({
projectId: "myid",
writeKey: "mykey"
});
var queryEvent = {
ip: ctx.req.ip,
baseUrl: ctx.req.baseUrl,
url: ctx.req.url,
route: ctx.req.route,
query: ctx.req.query,
method: ctx.methodString,
// response: ctx.result.???, What can I do here to get to the response headers? Specifically X-Response-Time
keen: {
timestamp: new Date().toISOString()
}
};
client.addEvent("queries", queryEvent, function(err, res) {
if (err) {
console.log(err)
} else {
console.log(res)
}
});
next();
});
};
尝试使用
ctx.res.getHeader('X-Response-Time')
或
请听
res.on('finish')
谢谢您的回复,但在这个例子中,我似乎无法让它起作用。我不确定是否可以在afterRemote方法中访问头文件。是的,我错过了头文件可能尚未定义的信息。所以我完成了答案!