我在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.
请帮助我错了。
答案 0 :(得分:1)
在我看来,您需要模型并将其分配给变量调用db1并创建一个名为User的实例。之后,您调用实例的findOne方法而不是模型本身。
如果您使用的是Mongoose,这应该是问题所在。如果没有,请提供更多详细信息。
此外,通常使用PascalCase调用您的类以及使用camelCase调用您的实例通常是一种很好的做法。这样你就不会感到困惑。
答案 1 :(得分:1)
findOne方法在模型上,而不是对象。所以它应该是:
db1.findOne({ email: req.body.email , password: req.body.password