【发布时间】:2015-01-12 02:43:07
【问题描述】:
在对升级版本和使用正文解析器的不同中间件/方式进行了大量摆弄之后,我仍然卡住了。
我有一个 Iphone 应用程序,它发布 2 件事情(2 件独立的事情)。首先是一个图像,它有效。 第二个是我尝试放入 mongodb 的 json 对象。
无论我做什么,我似乎都无法记录请求的内容。
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); }
});
});
我尝试过记录(日志、警告)req.body、req 等,但无济于事。 我使用的是 express-json 而不是 url 编码,我认为不需要它。
摩根在我发帖时输出以下内容
POST /pois 200 15.983 ms - 63
没有别的了!
【问题讨论】:
-
如果你在路由中插入
console.dir(req.headers['content-type']);,控制台会显示什么? -
嗯,成功了! 查看 console.dir 的文档
-
sry,并没有真正回答你的问题......它是'application/json'
-
console.dir(typeof(req.body));给出“未定义”
-
您是否尝试注释掉
app.use(json());并改用app.use(bodyParser.json());?