Node.js 如何在部署在Heroku上的环回应用程序中记录HTTP JSON请求?

Node.js 如何在部署在Heroku上的环回应用程序中记录HTTP JSON请求?,node.js,logging,heroku,express,loopbackjs,Node.js,Logging,Heroku,Express,Loopbackjs,Heroku上部署了一个应用程序(环回),我需要看到req主体(JSON)发送到此应用程序以进行调试 因此,对日志的访问权限是: heroku logs --tail server.js如下所示: var loopback = require('loopback'); var boot = require('loopback-boot'); var app = module.exports = loopback(); app.start = function() { // start

Heroku上部署了一个应用程序(环回),我需要看到req主体(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();
});

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

然后将此代码添加到serveur.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);

...

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

如果您不想修改server.js文件(为什么要修改),您可以注册一个中间件来记录所有请求,请参阅:


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

是否也可以记录response.body@安东尼