NodeJS express无法接收POST json

时间:2014-09-10 17:43:59

标签: javascript jquery json node.js

我试图将JSON发送到我的NodeJS路由。

curl -H "Content-Type: application/json" -d '{"name":"homer"}' http://localhost:3000/api

所以,在我的server.js:

...
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json({extended:true}));
app.use(methodOverride('_method'));
...

然后,在我的路线中:

router.post('/api', function (req, res){
    console.log(req.body);
});

因此,输出显示undefined

我做错了吗?我使用的是Express v4。

2 个答案:

答案 0 :(得分:1)

Express 4中的中间件和路由按照它们添加到您的应用程序的顺序执行。因此,您需要确保在使用bodyParser中间件后使用您的路由。

答案 1 :(得分:0)

JSON stringify从对象生成一个字符串。 使用

 JSON.parse({"name":"homer"})

 $.param({"name":"homer"})