【发布时间】:2015-12-13 13:43:39
【问题描述】:
看起来很简单,但我在代码中找不到错误。
app.js
var http = require('http');
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var routes = require('./routes')(app);
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.set('view engine', 'jade');
app.set('views', './views');
app.use(express.static('./public'));
app.listen(3000, function() {
console.log('hello');
console.log('express server listening on port:' + 3000);
});
index.jade
html
head
title Welcome
body
p Enter your name and email address to become a member.
form(action='/signup', method='post')
div
label Name
input(type='text', name='name')
div
label Email
input(type='text', name='email')
div
input(type='submit')
routes.js
module.exports = function(app) {
app.get('/', function(req, res) {
res.render('index');
});
app.post('/signup', function(req, res) {
console.log(req);
console.log(req.body);
var name = req.body.name;
var email = req.body.email;
console.log('Name: ' + name);
console.log('Email: ' + email);
res.json(req.body);
});
};
当我发布表单时出现错误:
TypeError:无法读取未定义的属性“名称” 在 /Users/demas/temporary/express/1/routes.js:11:22 在 Layer.handle [as handle_request] (/Users/demas/temporary/express/1/node_modules/express/lib/router/layer.js:95:5) 在下一个(/Users/demas/temporary/express/1/node_modules/express/lib/router/route.js:131:13) 在 Route.dispatch (/Users/demas/temporary/express/1/node_modules/express/lib/router/route.js:112:3) 在 Layer.handle [as handle_request] (/Users/demas/temporary/express/1/node_modules/express/lib/router/layer.js:95:5) 在 /Users/demas/temporary/express/1/node_modules/express/lib/router/index.js:277:22 在 Function.process_params (/Users/demas/temporary/express/1/node_modules/express/lib/router/index.js:330:12) 在下一个(/Users/demas/temporary/express/1/node_modules/express/lib/router/index.js:271:10) 在 expressInit (/Users/demas/temporary/express/1/node_modules/express/lib/middleware/init.js:33:5) 在 Layer.handle [as handle_request] (/Users/demas/temporary/express/1/node_modules/express/lib/router/layer.js:95:5)在控制台中,我可以看到 req.body 未定义。为什么?
【问题讨论】: