2016-10-13 27 views
2

ノードjsでexpressを使用して非常に単純なサービスを開発しようとしている初心者です。私のサービスの目的は、単純なインデックスページが価値を持ち、次のページに示します。これはapp.jsの私のコードです私はreq.bodyによってテキストボックスの価値を得ることができません。コンソールでreq.body.responseを表示すると、undefined.anyヘルプが表示されます。node.jsのreq.bodyから値を取得することができません

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') 

答えて

1

ための//コードのデータを送信するために、フォームは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と提出しています。

1

急行ドキュメントを確認してください:

あなたがGETクエリ文字列を介してデータを送信する場合、表現はすでにreq.queryオブジェクトのプロパティとして解析され、それらのパラメータを提供します、ではないreq.body

+0

thnaxそれは私のために働く。 –

関連する問題