使用Good在Hapi.js中记录请求和响应有效负载

时间:2014-08-26 19:25:13

标签: javascript node.js hapijs

我正在使用Hapi.js为我的移动应用程序实现RESTful API。我已经集成了Good for logging请求,错误和其他事件。它对我很有用。但是,如何记录请求和响应有效负载(JSON对象)尚不清楚。

我将不胜感激。

2 个答案:

答案 0 :(得分:4)

记录您需要的内容:

server.on('response', function (request) {
    console.log(request.info.remoteAddress + ': ' + request.method.toUpperCase() + ' ' + request.url.path + ' --> ' + request.response.statusCode);
    console.log('Request payload:', request.payload);
    console.log('Response payload:', request.response.source);
});

我没有使用Good,但我想将此与Good联系起来并不难。

答案 1 :(得分:3)

我知道这已经很晚了,但值得一提的是,您现在可以选择使用good来捕获请求和响应有效负载:

  

[requestPayload] - 确定请求有效负载是否可供记者对象使用。默认为false

     

[responsePayload] - 确定响应有效负载是否可供记者对象使用。默认为false

例如:

var options = {
    responsePayload: true,
    reporters: [{
        reporter: require('good-console'),
        events: { log: '*', response: '*' }
    }]
};

需要注意的是,您现在很可能会在日志文件中以纯文本格式存储用户名和密码。记录响应和请求有效负载时,应考虑使用filter选项:

  

[filter] - 具有以下键的对象:

     
      
  • key - 要更改的数据属性的键
  •   
  • value - 一个字符串,可以是以下之一:      
        
    • "检查员" - 用" X" s
    • 替换文本   
    • "除去" - 删除该值   有效的常规快递字符串。仅支持单个组。例如:"(\ d {4})$"将用" X" s替换最后四位数字。创建此字符串时要格外小心。您需要确保生成的RegExp对象是您所需的。
    •   
  •