在Express.js中解析JSON时,未定义主体

Nak*_*nut 2 json node.js express

我有一个简单的服务器,我只是在发布时将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);
Run Code Online (Sandbox Code Playgroud)

然后我用curl将JSON放到服务器上:

curl -X POST -H "Content-Type: application/json" -d '{"username":"xyz","password":"xyz"}' http://localhost:3000/event
Run Code Online (Sandbox Code Playgroud)

但服务器只是打印 undefined

我究竟做错了什么?

小智 5

你还没有定义express.bodyParser()的用法

它必须这样做:

app.use(express.bodyParser());
Run Code Online (Sandbox Code Playgroud)

实例:模块路由文件

exports.post = function(req, res){
    console.log(req.body);
    //res.render('index', { title: 'Express' });
};
Run Code Online (Sandbox Code Playgroud)

应用:

app.post('/post', routes.post);
Run Code Online (Sandbox Code Playgroud)

小提琴请求:

在此输入图像描述

来自评论:如果您有最新的库,您应该考虑从Connect 3.0弃用bodyParser.适当的线程:如何摆脱Connect 3.0弃用警报?