繁体   English   中英

在req.body.id(body-parser和express 4)Nodejs中获取未定义

[英]Get undefined in req.body.id (body-parser and express 4) Nodejs

app.js:

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var routes = require('./routes/index');
var person = require('./routes/person');

var app = express();

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

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/person', person);

module.exports = app;

路线/ person.js:

var express = require('express');
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
var router = express.Router();

/* GET  page. */
router.get('/', function (req, res) {
    res.render('person', {
        message: 'Person works'
    });
});

router.post('/', urlencodedParser, function (req, res) {
    res.send('Thank you!');
    console.log(req.body.firstname);
    console.log(req.body.lastname);
});

意见/ person.pug:

    extends layout

block content
    h1 Welcome #{id}
    p= message
    br
    h2= qstr
    br
    form(method='post', action='/person')
        label First name      
        input#firstname(type='text')    
        br   
        label Last name 
        input#lastname(type='text')
        input(type='submit', value='Submit')

问题:

1)是否有必要在每个路线中添加?:

var bodyParser = require('body-parser'); 
var urlencodedParser = bodyParser.urlencoded({ extended: false });

2)为什么我得到这个:

在此输入图像描述

1.你不需要在每条路线都使用身体解析器。 Body-parser是一个中间件,用于从application / x-www-urlencoded内容类型中获取数据。 因此,如果您确定您体内获得的数据不是x-www-urlencoded类型,则无需使用它。

2.请检查您是否在邮寄请求中传递数据。 您可以使用chrome extension postman来形成任何类型的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM