TypeError: Cannot read property 'email' of undefined

cmd报错:E:workspace5704segmentnode_modulesmysqllibprotocolParser.js:80

    throw err; // Rethrow non-MySQL errors
    ^

TypeError: Cannot read property 'email' of undefined

at E:\workspace\5704\segment\models\userModel.js:55:25
at Handshake.onConnect (E:\workspace\5704\segment\node_modules\mysql\lib\Pool.js:64:7)
at Handshake.Sequence.end (E:\workspace\5704\segment\node_modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
at Handshake.Sequence.OkPacket (E:\workspace\5704\segment\node_modules\mysql\lib\protocol\sequences\Sequence.js:97:8)
at Protocol._parsePacket (E:\workspace\5704\segment\node_modules\mysql\lib\protocol\Protocol.js:280:23)
at Parser.write (E:\workspace\5704\segment\node_modules\mysql\lib\protocol\Parser.js:76:12)
at Protocol.write (E:\workspace\5704\segment\node_modules\mysql\lib\protocol\Protocol.js:39:16)
at Socket.<anonymous> (E:\workspace\5704\segment\node_modules\mysql\lib\Connection.js:103:28)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)

源代码(登陆页面):<form action = "../users/login" name = "loginForm" method="post">

登录
email: <input type="text" name = "email" class = "form-control" placeholder="文本输入">
密码: <input type="password" name = "pwd" class = "form-control"placeholder="密码">
<input type="hidden" name = "subflag" value = "1" > <input type="submit" value = "登录" class = "btn btn-success">
        </form>

路由设置:router.all('/login', function(req, res) {

subflag = req.body['subflag'];
if(subflag == undefined){
    res.render('login');
}
else{
    userModel.login(req.res);
}

});
登陆判断:login:function(req,res){

    pool = connPool();登陆

    pool.getConnection(function(err,conn){
        if(err){
            res.send('获取连接错误,错误原因:' + err.message);
            return;
        }

        var userSql = 'select uid,nicheng from user where email = ? and pwd = ?';
        var param = [req.body["email"],req.body["pwd"]];email
        conn.query(userSql,param,function(err,rs){
            if(err){
                res.send("数据库连接错误,错误原因:" + err.message);
                return;
            }
            console.log('输出结果集:' + rs);
            if(rs.length > 0){

                res.send("登录成功!");
            }
            else{
                res.send("email/密码错误");
            }
        });
        conn.release();
    })

}

我在测试的时候,抛出错误 不能读取未定义属性"email"
我尝试过添加
var bodyParser = require('body-parser');
app.use(bodyParser());
但是都没有解决 这是怎么个问题?

阅读 3.5k
3 个回答

var param = [req.body["email"],req.body["pwd"]];email你这个分号后面多了个email啊。。

req['body'] undefined
可以把req打印出来console.log(req);

错误代码serModel.login(req.res);正确代码userModel.login(req,res);参数传递的时候 把 逗号打成了英文句号 改成这样就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题