这是代码,htis是使用express框架的node.js:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Expressxx' });
});
router.post('/', function(req, res, next) {
var body = '';
req.on('data', function(chunk) {
body += chunk;
});
req.on('end', function() {
console.log(body);
});
/* res.send('Got the Post'); */
res.set('Content-Type', 'text/plain');
res.send('this is the body' + body);
res.end();
});
module.exports = router;
当我做console.log(正文);我看到了预期的数据,但在客户端,我看到的是“这就是身体”。似乎res.send无法读取body obj?
...谢谢
答案 0 :(得分:1)
上面的代码会在触发data
事件之前发送响应,因此永远不会构建body
。在res.send
事件处理程序中移动end
和关联的调用可以获得您想要的结果。
答案 1 :(得分:0)
经过多一点测试后,似乎res.send将发送一个obj,如果它是一个Json obj ...在我的情况下它只是在主体obj中的纯文本。
当我在这里阅读这个方法时...... http://expressjs.com/en/api.html#res.send
它说: body参数可以是Buffer对象,String,对象或Array
它没有说它必须是一个json obj ???