【问题标题】:How log an HTTP JSON request in Loopback app deployed on Heroku?如何在 Heroku 上部署的 Loopback 应用程序中记录 HTTP JSON 请求?
【发布时间】:2015-08-15 08:24:45
【问题描述】:

在 Heroku 上部署了一个应用(Loopback),我需要查看请求正文(JSON)发送到该应用以进行调试。

所以对日志的访问是:

heroku logs --tail

server.js 如下:

var loopback = require('loopback');
var boot = require('loopback-boot');

var app = module.exports = loopback();

app.start = function() {
  // start the web server
  return app.listen(function() {
    app.emit('started');
    console.log('Web server listening at: %s', app.get('url'));
  });
};

// Bootstrap the application, configure models, datasources and middleware.
// Sub-apps like REST API are mounted via boot scripts.
boot(app, __dirname, function(err) {
  if (err) throw err;

  // start the server if `$ node server.js`
  if (require.main === module)
    app.start();
});

【问题讨论】:

    标签: node.js logging heroku express loopbackjs


    【解决方案1】:

    由于 loopback 扩展了 express,我们可以使用 body parser 模块。所以首先安装“body-parser”

    然后在 serverur.js 中添加这段代码

    var loopback = require('loopback');
    var boot = require('loopback-boot');
    
    var app = module.exports = loopback();
    
    var bodyParser = require('body-parser');
    
    // parse application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({ extended: false }))
    
    // parse application/json
    app.use(bodyParser.json())
    
    var logger = function(req, res, next) {
      console.log(JSON.stringify(req.body, null, 2));
      next(); // Passing the request to the next handler in the stack.
    }
    app.use(logger);
    
    ...
    

    远程日志将显示服务器收到的每个请求正文。

    【讨论】:

    • 是否也可以记录 response.body ? @安东尼
    【解决方案2】:

    如果你不想修改你的 server.js 文件(为什么会这样),你可以注册一个中间件来记录所有请求,参考:

    https://docs.strongloop.com/display/public/LB/Defining+middleware#Definingmiddleware-Overview

    有关如何注册和编写中间件的更多详细信息。 routes:before 是记录请求的好阶段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-26
      • 2017-05-26
      • 2020-07-03
      • 2020-09-02
      • 2022-12-10
      • 1970-01-01
      • 2021-04-07
      • 2013-02-01
      相关资源
      最近更新 更多