无法读取未定义的属性'email' - loopback框架

时间:2016-02-13 19:45:09

标签: javascript loopbackjs

module.exports = function(app) {
  var User = app.models.account;

  //login page
  app.get('/', function(req, res) {
    res.render('login');
  });

  //verified
  app.get('/verified', function(req, res) {
    res.render('verified');
  });

  //log a user in
  app.post('/login', function(req, res) {
    User.login({
      email: req.body.email,
      password: req.body.password
    }, 'user', function(err, token) {
      if (err) {
        res.render('response', {
          title: 'Login failed',
          content: err,
          redirectTo: '/',
          redirectToLinkText: 'Try again'
        });
        return;
      }

      res.render('home', {
        email: req.body.email,
        accessToken: token.id
      });
    });
  });
}

我正在尝试链接我的模型帐户,该帐户以“用户”为基础。然后调用User.login函数等。

但它说Cannot read property 'email' of undefined为什么?

这一行给出的错误是email: req.body.email,

2 个答案:

答案 0 :(得分:1)

由于loopback基于express.js框架,因此需要正文解析器中间件,但默认情况下不启用

查看这些链接以设置bodyparser reddit thread
stackoverflow q&a

答案 1 :(得分:0)

您需要将正文解析器中间件放在middleware.json文件中。它已包含在node_modules

"parse": {
  "body-parser#json": {},
  "body-parser#urlencoded": {"params": { "extended": true }}
}