2015-06-12 68 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'); 

我还是不知道怎么的,但它的作品。