我有一个简单的服务器,我只是在发布时将json打印到屏幕上。这是我的代码:
/*jslint node:true*/
var express = require('express');
var app = express();
app.use(express.json());
app.use(app.router);
app.post('/event', function (res, req) {
//'use strict';
console.log(req.body);
});
app.listen(3000);
然后我用服务器将一个JSON放到服务器上:
curl -X POST -H "Content-Type: application/json" -d '{"username":"xyz","password":"xyz"}' http://localhost:3000/event
但服务器只打印undefined
我做错了什么?
答案 0 :(得分:5)
你还没有定义用法 express.bodyParser()
必须这样做:
app.use(express.bodyParser());
直播示例: 模块路由文件
exports.post = function(req, res){
console.log(req.body);
//res.render('index', { title: 'Express' });
};
应用程序:
app.post('/post', routes.post);
小提琴手请求:
来自评论的
:如果您有最新的库,您应该考虑从Connect 3.0弃用bodyParser。适当的主题:How to get rid of Connect 3.0 deprecation alert?
答案 1 :(得分:2)
我只知道问题所在。它应该是:
function (req, res)
而不是:
function (res, req)
因为第一个参数是请求,第二个参数是响应。