无法从node.js中的req.body中获取值

作为一个初学者,我尝试在node js中使用express来开发一个非常简单的服务,我的服务的目标是获得一个值并在提交后显示在下一页上的简单索引页面。这是app.js中的我的代码。 我无法通过req.body获得文本框的值。 当我在控制台打印req.body.response是显示undefined.any帮助将不胜感激。

var http = require('http'); //used for http request var express = require('express'); //express var session = require('express-session'); //used for creating session var bodyParser = require('body-parser'); var errorHandler = require('errorhandler'); //used for error handling var cookieParser = require('cookie-parser'); //used for creation of cookies var MongoStore = require('connect-mongo')(session); //mongo var path = require('path'); var app = express(); app.set('views/index', path.join(__dirname, 'views/index')); app.set('view engine', 'jade'); app.set('port', process.env.PORT || 3000); app.use(cookieParser()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); // build mongo database connection url // var dbHost = process.env.DB_HOST || 'localhost' var dbPort = process.env.DB_PORT || 27017; var dbName = process.env.DB_NAME || 'demo'; var dbURL = 'mongodb://'+dbHost+':'+dbPort+'/'+dbName; var data = ''; var response; app.get('/', function(req, res) { console.log(req.body.title); response = { email:req.body.email, password:req.body.password }; console.log(response); res.render('index', { title: 'index' }); }); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

//代码为玉

 doctype html html head title home body form(method='get') .col-lg-12 .col-lg-6 label name .col-lg-6 input(type='text', name='name') .col-lg-12 .col-lg-6 label email .col-lg-6 input(type='email', name='email') .col-lg-12 .col-lg-6 label Password .col-lg-6 input(type='password', name='password') .col-lg-12 input(type='submit', name='submit', value='Save') 

为了发送数据,你的表单需要POST ,而不是GET

 doctype html html head title home body form(method='post', action='/') .col-lg-12 .col-lg-6 label name .col-lg-6 input(type='text', name='name') .col-lg-12 .col-lg-6 label email .col-lg-6 input(type='email', name='email') .col-lg-12 .col-lg-6 label Password .col-lg-6 input(type='password', name='password') .col-lg-12 input(type='submit', name='submit', value='Save') 

然后,您将在您的应用程序中提供req.body.namereq.body.emailreq.body.password 。 你没有提交任何称为title ,因此req.body.title = undefined

请检查快速文档:

  • req.body
  • req.query

如果您通过GET Querystring提交数据,则express将提供已经parsing为req.query对象的属性的那些参数,而不是req.body