如何在 Heroku 上部署的 Loopback 应用程序中记录 HTTP JSON 请求?
How log an HTTP JSON request in Loopback app deployed on Heroku?
在 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();
});
由于loopback extends express,我们可以使用body parser模块。所以先安装"body-parser"
然后在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文件(你为什么要修改),你可以注册一个记录所有请求的中间件,参考:
https://docs.strongloop.com/display/public/LB/Defining+middleware#Definingmiddleware-Overview
有关如何注册和编写中间件的更多详细信息。 routes:before 是记录请求的好阶段。
在 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();
});
由于loopback extends express,我们可以使用body parser模块。所以先安装"body-parser"
然后在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文件(你为什么要修改),你可以注册一个记录所有请求的中间件,参考:
https://docs.strongloop.com/display/public/LB/Defining+middleware#Definingmiddleware-Overview
有关如何注册和编写中间件的更多详细信息。 routes:before 是记录请求的好阶段。