2017-08-09 10 views
-1

私はreactとnodeにusewr登録ログインを行いました。サインアップルートが機能していて、ユーザーがmongoに保存されていますが、サインインルートが機能していません。MongoとNodeJsを使用したユーザー登録は機能しません

サインインコンポーネント: -

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 is not a functionand i am getting 500 status.

助けてください。

+0

db1とは何ですか? Mongooseや他のフレームワークを使ってMongoに接続していますか? –

+0

@マークス。 Db1はモデル です。const db1 = require( '../ models/users'); –

答えて

1

findOneメソッドは、オブジェクトではなくモデル上にあります。だから:

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

See previous questionです。

1

モデルが必要で、変数呼び出しdb1に代入してUserというインスタンスを作成すると思います。その後、モデル自体の代わりにインスタンスのfindOneメソッドを呼び出します。

マングースを使用している場合は、これが問題になるはずです。そうでない場合は、詳細を記入してください。

また、PascalCaseでクラスを呼び出し、camelCaseでインスタンスを呼び出すことをお勧めします。こうしてあなたは混乱することはありません。

+0

はい、私はmoongooseを使用していて、db1は可変です。私は今何をするでしょうか? –

+0

ユーザーの代わりにdb1のfindOneメソッドを呼び出してみてください。 –

関連する問題