我有一个相对广泛的 web 应用程序,它全部使用 mongodb-node-driver 在 NodeJS 和 MongoDB 中构建。现在我遇到了最奇怪的问题。
我有这个功能:
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 都打印相同的内容,除了第二个添加了“_id”并且所有键都没有引号。
但是,没有任何东西进入数据库。没有错误,文档就像插入一样返回,但没有添加任何内容。这尤其奇怪,因为这在我的代码中的任何其他地方都不是问题(而且我做了很多插入)。
更令人困惑的是,如果我newloc
将插入更改为{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 被移除时,输出是相同的。