2015-09-27 90 views
0

我需要node.js的帮助: 我有我的req.body填充这样我无法从req.body获取值的node.js

{ 
    '{ 
     "email":"[email protected]", 
     "password":"12345" 
    }' 
    : '' 
} 

,但我不能让值REQ。 body.email和req.body.password是不确定的

我的代码是:

user.js 

exports.loginByEmail= function(req, res) { 
console.log('POST'); 
console.log(req.body);//show values 
console.log(req.body.email);//undefined 
console.log(req.body.password);//undefined 
    User.find({email:req.body.email,password:req.body.password}).toArray(function(err, userLoged) { 
    if(err) return res.send(500, err.message); 
    res.status(200).jsonp(userLoged); 
    }); 
}; 

app.js 

var express = require("express"), 
app = express(), 
bodyParser = require("body-parser"), 
methodOverride = require("method-override"); 
mongoose = require('mongoose'); 

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

回答

2

你的身体在第一位设置方式,它看起来像关键是你对象的字符串和值是一个空字符串。

即你的身体是关键 '{电子邮件:电子邮件@ hostname.com,密码:12345}'(引号为清楚起见移除) 与价值'

试着写你的身体

{ 
    email: "[email protected]", 
    password: "12345" 
    } 
+0

那么,在这个角的代码被创建JSON:$ HTTP({ 方法: 'POST', URL :的 'http://本地主机:3000/API/loginByEmail', 数据:{ '电子邮件':this.formLoginByEmail.username, '密码':this.formLoginByEmail.password}, 标头:{ '内容类型': '应用/的X WWW的形式,进行了urlencoded'}} ) –

+0

你试图改变Content-Type头为 '应用/ JSON'? – user3323765

0

尝试(在客户侧):

$http({ 
    method: 'POST', 
    url: 'http://localhost:3000/api/loginByEmail', 
    data: 'email=' + encodeURIComponent(this.formLoginByEmail.username) + 
      '&password=' + encodeURIComponent(this.formLoginByEmail.password), 
    headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
});