2017-07-11 14 views
0

データが一意である場合にのみmongo dbコレクションにデータを挿入するサインアップボタンがあります。そうでなければ、ユーザーは同じページにとどまるべきです。同じことを実現するために、私はupsert:真実を行っています。これは私のノードのjsノードjsでmongodbを照会

var mongoClient=require('mongodb').MongoClient; 
var url='mongodb://localhost:27017/test'; 
app.post('/newuser', function(req, res) { 
    username=req.body.username; 
    password=req.body.password; 

mongoClient.connect(url,function(err,db){ 
    //console.log("connected") 
    db.collection('users',function(err,collection){ 
     collection.update({username:username, password:password},{upsert:true},function(err,result){ 
      res.send(result.insertedCount); 
     }); 
    }) 
}) 
}); 

ためのコードとフロントエンドのコードである

$.ajax({ 
    type:'POST', 
    url:'/newuser', 
    data:{ 
     username:username, 
     password:password 
    }, 
    success:function(result){ 
     console.log(result); 
     if(result===1){ 

     that.setState({ 
      isLoggedin:true 
     }) 
    }else{ 
     alert("not inserted"); 
    } 
    } 
}) 
return false; 

}

私は、サーバーを実行するたびに、成功関数がexecuted.Whatを得ることはありませんコードに間違っていますか?おかげさまで

+0

'Network tools、Chrome'のAPIへの応答を確認してください –

+0

応答データを読み込めません@ atulquest93 – Aayushi

+0

' Console(Ctrl + Shift + J)>ネットワークツールを開きます。リクエストをクリックし、ブラウザがデータを受信して​​いるか 'response'をチェックするか、または何らかのエラーです。 –

答えて

1

を使用する場合は、更新クエリで$ setを指定する必要があります。

collection.update(
    {}, 
    {$set: { username, password }}, 
    {upsert:true}, 
    function(err,result){ 
     res.send(result); 
    } 

EDIT:resultオブジェクトを送信、nModifiedに基づいてチェック、結果オブジェクトのn値が更新され、変更されたレコードの数を取得します。

関連する問題