app.js:Get undefined in req.body.id (Körper-Parser und Express 4) NodeJS
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;
Routen/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);
});
views/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')
Fragen:
1) Ist es notwendig, in jedem Weg zur Anzeige d ?:
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
2) Warum erhalte ich diese:
[Bild] (https://i.gyazo.com/44c9d9a08ec001424e3c40a2fce4cd4f.png) Gelöst !, können Sie mir erklären, warum funktioniert nicht, wenn ich die Werte im Browser setzen? –
Nun, wenn Sie Körper-Parser in app.js deklarieren, ist es nicht notwendig, etwas zu setzen! –
Gut gemacht Kumpel! Das einzige, was Sie von einem Browser aus tun können, ist das Senden bestimmter URLs und das Anfügen von Abfrageparametern an diesen Browser. Aber sie werden von einer Anfrage bekommen. Deshalb müssen Sie eine Erweiterung verwenden (Sie können auch ein Formular mit einer Post-Methode verwenden) – nrgwsth