所以我試圖通過POST提交表單到Express路由,但是當我使用req.query.
時,它給了我'未定義'而不是表單值。Node.js表單提交給出未定義的變量
這裏是我的代碼: app.js:
var express = require('express'),
path = require('path'),
bodyParser = require('body-parser'),
vhost = require('vhost'),
http = require('http');
var blob = require('./model/blobs');
var routes = require('./routes/index'),
blobs = require('./routes/blobs'),
users = require('./routes/users'),
marathon = require('./routes/marathon');
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use(vhost('www.lsaciasi.lo', routes));
app.use(vhost('lsaciasi.lo', routes));
app.use(vhost('recrutari.lsaciasi.lo', blobs));
app.use(vhost('intern.lsaciasi.lo', users));
app.use(vhost('itmarathon.lsaciasi.lo', marathon));
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
blobs.js:
var express = require('express'),
bodyParser = require('body-parser');
var router = express.Router();
var urlencodedParser = bodyParser.urlencoded({ extended: false })
router.get('/', function(req, res, next) {
res.render('blobs', { title: 'LSAC Iasi | Join Us!' });
});
router.post('/sendaction', urlencodedParser, function (req, res) {
response = {
first_name:req.body.nume,
last_name:req.body.prenume
};
console.log(response);
res.send(response);
});
module.exports = router;
..aand我index.jade的一部分
.container-fluid#aplic
.row
form(action="/sendaction" method="post" id="form1")
h2 Aplică
br
.textbarr
h4 Nume:
input(type="text" name="nume" placeholder="Popescu")
br
.textbarr
h4 Prenume:
input(type="text" name="prenume" placeholder="Ion")
br
.textbarr
h4 Email:
input(type="text" name="email" placeholder="[email protected]")
br
.textbarr
h4 Telefon:
input(type="text" name="telefon" placeholder="0743 352 156")
br
.textbarr
h4 Care este viziunea ta desre voluntariat?
textarea(type="textarea" name="opinie" placeholder="Cum vezi tu sa (te) ajute actiunile de voluntariat?")
br
.textbarr
h4 De ce LSAC?
textarea(type="textarea" name="motivatie" placeholder="Ce te motiveaza sa aplici aici?")
br
.textbarr
button.btn.btn-success(type="submit" form="form1" value="Submit") Trimite
br
而我得到的是:{ first_name: undefined, last_name: undefined }
。
編輯
我不好,爲first_name:req.query.nume
它woldn't工作,但first_name:req.body.nume
同樣的問題發生變化,則返回 'undifined'
req.query用於傳遞URL中的值,例如https://www.google.com.br/?gws_rd=ssl#q=req+query+express.js。 「?」後面的所有內容是一個變量裏面req.query – danilodeveloper
要獲得表單值,你必須使用req.body.your_variable – danilodeveloper
好吧,我的壞,對於'first_name:req.query.nume'它不會工作,但'last_name:req。 body.nume'應該沒問題。在我的情況下,它返回'undifined' – user2187390