私は、mongodb-node-driver を使用して NodeJS と MongoDB ですべて構築された比較的大規模な webapp を持っています。今、私は最も奇妙な問題に遭遇しました。
私はこの機能を持っています:
function newLoc(req, res){
var newloc = req.body;
console.log(JSON.stringify(newloc));
locs.insert(newloc,{safe:true},function(err,doc){
if(err) returnError(res,'aww shit locinsertion error!\n\n'+err.message);
else{
console.log(doc[0]);
returnSuccess(res,"The ID of the location you just added is: "+doc[0]['_id']);
}
});
}
すべてが適切に設定されており (接続の開始に関して)、returnSuccess は問題なく動作します。req.body
POST 経由で送信されるフォームからのデータが含まれます。両方の console.log は同じものを出力しますが、2 番目のものには「_id」が追加されており、すべてのキーには引用符がありません。
ただし、データベースには何もありません。エラーはありません。ドキュメントは挿入されたかのように返されますが、何も追加されません。これは私のコードの他のどこにも問題がないため、特に奇妙です(そして私はたくさんの挿入を行います)。
混乱を招くためにnewloc
、挿入を be に変更すると、挿入されます{foo:bar}
。何が起こっているのか誰にもわかりませんか?
christkv の要求に応じて編集します。印刷されたオブジェクトは次のとおりです。
{"music":"art","array":[],"name":"sdf","info":"","date":"asdf","_id":"fSURBOvCU"}
{ muic: 'art',
array: [],
name: 'sdf',
info: '',
date: 'asdf',
_id: 'fSURBOvCU' }
「mongod」プロセス出力には何も出力されていません。これは、エラーがログに記録される場所でもあると思います。
また、console.log(JSON.stringify(newloc))
JSON.stringify を削除すると、出力は同じになります。