2015-06-12 65 views
0

我試圖實現使用快遞和身體解析器一個登錄頁面,我的代碼如下:BodyParser不識別輸入的

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: true})); 

mongoose.connect("mongodb://localhost/database", function(err){ 
    if(err) throw err; 
    console.log("DB Connection was successful"); 
}); 

var Schema = mongoose.Schema; 

var userSchema = mongoose.Schema({ 
    name: {type: String, required: true, index: {unique: true}}, 
    password: {type: String, required: true} 
}); 

var user = mongoose.model("user", userSchema); 

app.set("view engine","jade"); 
app.use(express.static("public")); 

app.get('/',function(req,res){ 
    res.render("index"); 
}); 
console.log('Service has started'); 

app.post("/menu", function(req, res){ 
    console.log(req); 
    var data = { 
     name: req.body.name, 
     password: req.body.password 
    } 
    console.log(data); //I'm trying to display the user received in the login 
    res.render("auth"); 
}); 
app.listen(8080); 

的問題是,當我發送的信息(名稱和密碼),控制檯顯示:{ name: undefined, password: undefined }但是,當我使用行console.log(req)時,控制檯確實顯示了所有請求信息(應該通過body-parser將其轉換爲名稱和密碼)。

如何解決undefined問題?提前致謝。

+0

您如何提出請求? – robertklep

+0

'形式(方法= 「POST」 行動= 「/菜單」 樣式= 「邊距:1.5em;」 ENCTYPE = 「多部分/格式數據」) \t \t \t \t \t輸入(類型= 「文本」 名稱= 「用戶」 佔位符= 「usuario」 類= 「形控制」) \t \t \t \t \t輸入(類型= 「密碼」 名稱= 「密碼」 佔位符= 「contraseña」 類= 「形控制」) \t \t \t \t \t button登錄' – user3651293

回答

1

你試圖解析多數據用肢體解析器(enctype="multipart/form-data")。你不能這樣做。它也寫在documentation。如果要解析多部分表單數據,請使用connect-multiparty模塊。

0

我設法使它工作使用此代碼

var express = require('express'); 
var mongoose = require('mongoose'); 
var bodyParser = require('body-parser'); 
var app = express(); 

mongoose.connect("mongodb://localhost/database"); 
var userSchema = { 
    name: String, 
    pass: Number 
}; 

var User = mongoose.model("User",userSchema); 

app.use(express.static("public")); 
app.set("view engine","jade"); 
app.get('/',function(req,res){ 
    res.render("index"); 
}); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended:true})); 


app.post("/auth",function(req,res){ 

    console.log(req.bodyParser); 
    var data={name:req.body.name, 
       pass:req.body.pass}; 
    console.log(data); 
    res.render("index"); 
});  

app.listen(8080); 
console.log('Service started'); 

我還是不知道怎麼的,但它的作品。