BodyParser 在读取表单时发送 undefined
BodyParser sends undefined when reading form
我正在使用 node.js 和 express 构建网站,因此,为了读取注册信息(用户名、密码和电子邮件),我正在使用 BodyParser。
这是包含表格的玉码。它在我的 'views' 文件夹中。
form(class="form" method="post" action="/UsuarioReg" enctype="multipart/form-data")
label(class="col-lg-12") username
input(type="text" name="username")
br
label(class="col-lg-12") password
input(type="password" name="password")
br
label(class="col-lg-12") email
input(type="email" name="email")
br
input(type="submit" value="Signup")
这是我的 'server.js' 文件,位于根文件夹中。
var express = require('express');
var app = express();
var morgan = require('morgan');
var mongoose = require('mongoose');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var configDB = require('./config/database.js');
mongoose.connect(configDB.url);
app.use(bodyParser.urlencoded({ extended: false} ));
app.use(express.static('public'));
app.use(morgan('dev'));
app.use(cookieParser());
app.use(session({
secret: 'anyString',
saveUninitialized: true,
resave: true
}));
app.set('view engine', 'jade');
require('./app/routes.js')(app);
最后,这是我的 'routes.js' 文件,它位于 'app' 文件夹中。
var User = require('./models/user');
module.exports = function (app){
app.post('/UsuarioReg' ,function(req,res){
var newUser = new User();
newUser.local.username = req.body.username;
newUser.local.password = req.body.password;
newUser.local.email = req.body.email;
console.log('Data received: \nusername: ' + newUser.local.username + '\npassword: ' + newUser.local.password + '\nemail: ' + newUser.local.email);
newUser.save(function (err) {
if (err) return handleError(err);
});
res.send('Successful signup');
});
};
但是每次我发送注册表单时,bodyparser 都会显示 'undefined'。我确定操作 '/UsuarioReg' 在 jade 和 routes.js 文件中具有相同的名称,是否有任何我遗漏的代码,或者 'server.js'文件?
提前致谢。
如果您不上传任何文件,请从表单中删除 enctype="multipart/form-data"
。 bodyparser 中间件无法解析多部分表单数据。如果你想上传文件,你将需要另一个像 multer 这样的中间件。
我正在使用 node.js 和 express 构建网站,因此,为了读取注册信息(用户名、密码和电子邮件),我正在使用 BodyParser。
这是包含表格的玉码。它在我的 'views' 文件夹中。
form(class="form" method="post" action="/UsuarioReg" enctype="multipart/form-data")
label(class="col-lg-12") username
input(type="text" name="username")
br
label(class="col-lg-12") password
input(type="password" name="password")
br
label(class="col-lg-12") email
input(type="email" name="email")
br
input(type="submit" value="Signup")
这是我的 'server.js' 文件,位于根文件夹中。
var express = require('express');
var app = express();
var morgan = require('morgan');
var mongoose = require('mongoose');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var configDB = require('./config/database.js');
mongoose.connect(configDB.url);
app.use(bodyParser.urlencoded({ extended: false} ));
app.use(express.static('public'));
app.use(morgan('dev'));
app.use(cookieParser());
app.use(session({
secret: 'anyString',
saveUninitialized: true,
resave: true
}));
app.set('view engine', 'jade');
require('./app/routes.js')(app);
最后,这是我的 'routes.js' 文件,它位于 'app' 文件夹中。
var User = require('./models/user');
module.exports = function (app){
app.post('/UsuarioReg' ,function(req,res){
var newUser = new User();
newUser.local.username = req.body.username;
newUser.local.password = req.body.password;
newUser.local.email = req.body.email;
console.log('Data received: \nusername: ' + newUser.local.username + '\npassword: ' + newUser.local.password + '\nemail: ' + newUser.local.email);
newUser.save(function (err) {
if (err) return handleError(err);
});
res.send('Successful signup');
});
};
但是每次我发送注册表单时,bodyparser 都会显示 'undefined'。我确定操作 '/UsuarioReg' 在 jade 和 routes.js 文件中具有相同的名称,是否有任何我遗漏的代码,或者 'server.js'文件?
提前致谢。
如果您不上传任何文件,请从表单中删除 enctype="multipart/form-data"
。 bodyparser 中间件无法解析多部分表单数据。如果你想上传文件,你将需要另一个像 multer 这样的中间件。