如何在节点js中获取请求体的密钥

时间:2017-02-09 15:44:04

标签: node.js express request

我正在使用快递。 我的路线文件中有以下代码:

    router.post('/', function (req, res) {

        res.send(req.body);

        //res.send('Got a POST request')
    })

以下是 app.js / server.js

中的几行
var express       = require('express');
var path          = require('path');
var favicon       = require('serve-favicon');
var logger        = require('morgan');
var cookieParser  = require('cookie-parser');
var bodyParser    = require('body-parser');

var index = require('./routes/index');
var users = require('./routes/users');
var adminAuth = require('./routes/adminAuth');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');


app.get('/', function (req, res) {
    res.send('hello world11')
})

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser());
app.use(bodyParser.urlencoded({
    extended: true
}));

到我的身份验证用户路由,我在json下面通过rest client发送:

{ '用户名': 'harsimer'}

但是我无法从我的 req.body获取用户名我试过了

  

req.body.username

我是node.js的新手并表达。

请提供一些解决方案或参考。

1 个答案:

答案 0 :(得分:0)

我会说你没有正确配置body-parser。您可以尝试使用此片段进行初始化:

app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
  extended: true
})); 

你想使用bodyParser.json()因为我认为你期望得到json的输入。

您应该将代码中的此代码段替换为我上面发布的代码段:

app.use(bodyParser());
app.use(bodyParser.urlencoded({
    extended: true
}));

official github repo中有类似的例子。