使用Mongo和NodeJ的用户注册不起作用

时间:2017-08-09 16:15:14

标签: node.js mongoose

我在react和node中进行了usewr注册登录。我的注册路由正在运行,用户保存在mongo中,但是注册路由不起作用?

SignIn组件: -

signIn(){

axios.post('/tasks/signin', {
  email: this.state.email,
  password: this.state.password,
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
}

路线是: -

Router.post('/signin', (req, res) => {
 var User = new db1();

  User.findOne({ email: req.body.email , password: req.body.password 
 }, function(err, user) { 
   console.log(user);  
  if(err) return next(err);
  if(!user) return res.send('Not logged in!');
  return res.send('Logged In!');
  });
});

错误:

  

User.findOne不是一个函数,我的状态为500.

请帮助我错了。

2 个答案:

答案 0 :(得分:1)

在我看来,您需要模型并将其分配给变量调用db1并创建一个名为User的实例。之后,您调用实例的findOne方法而不是模型本身。

如果您使用的是Mongoose,这应该是问题所在。如果没有,请提供更多详细信息。

此外,通常使用PascalCase调用您的类以及使用camelCase调用您的实例通常是一种很好的做法。这样你就不会感到困惑。

答案 1 :(得分:1)

findOne方法在模型上,而不是对象。所以它应该是:

  db1.findOne({ email: req.body.email , password: req.body.password 

See previous question