ExpressJS POST不能logging正文

经过大量的升级版本和不同的中间件/使用身体parsing器的方式摆弄,我仍然坚持。

我有一个iPhone应用程序,POST 2件事(2件独立的事情)。 首先是一个图像,它的作品。 其次是一个json对象,我试图把它放进mongodb。

无论我做什么,我似乎都无法logging请求的内容。

var express = require('express'); var logger = require('morgan'); var fs = require('fs'); var json = require('express-json'); var path = require('path'); var errorHandler = require('errorhandler'); MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server, CollectionDriver = require('./collectionDriver').CollectionDriver; FileDriver = require('./fileDriver').FileDriver; 

 app.use(json()); //app.use(bodyParser.urlencoded({ extended: true })); app.use(logger('dev')); app.use(express.static(path.join(__dirname, 'public'))); 

 app.post('/:collection', function(req, res) { console.warn(req.body.poi.toString()); var object = req.body; var collection = req.params.collection; console.warn("Post: " + req.toString()); collectionDriver.save(collection, object, function(err,docs) { if (err) { res.send(400, err); } else { res.send(201, docs); } }); }); 

我试过logging(日志,警告)req.body,req等无济于事。 我使用express-json而不是url编码,不要以为需要它。

当我发布时,摩根输出以下内容

 POST /pois 200 15.983 ms - 63 

没有别的!

它显然不能这样做,正如在这个封闭的问题所述https://github.com/expressjs/morgan/issues/16 morgan并不打算这样的工作。 尝试和使用温斯顿,或简单地console.log