下面是我的代码,我想更新我的数据库,因此必须使用异步,但它会抛出以下错误 - " TypeError:cb不是一个函数。在E:\ smart-in-ffa \ apis \ node_modules \ mongojs \ lib \ collection.js:106:7 在handleCallback(E:\ smart-in-ffa \ apis \ node_modules \ mongojs \ node_modules \ mongodb \ lib \ utils.js:96:56) 在E:\ smart-in-ffa \ apis \ node_modules \ mongojs \ node_modules \ mongodb \ lib \ collection.js:1048:5 在E:\ smart-in-ffa \ apis \ node_modules \ mongojs \ node_modules \ mongodb \ node_modules \ mongodb-core \ lib \ connection \ pool.js:455:18 at _combinedTickCallback(internal / process / next_tick.js:67:7) at process._tickCallback(internal / process / next_tick.js:98:9) [nodemon] app崩溃 - 在开始之前等待文件更改..."
以下是我的代码:
async.each(jsondata,
function(itemdata, callbackNew){
//console.log(item);
db.mdb.collection('Copy_of_counters')
.update(
{"store_code":itemdata.store_code},{$set:itemdata},
{ upsert: true },{ multi: true },
function (erreach, data) {
if (erreach) {
console.log("error reported")
console.log(erreach)
callbackNew(erreach);
}
else{
console.log('Data updated')
callbackNew();
//app.send(req,res,data);
}
})
},function(err){
if(err) {
console.log("this is the error"+err)
app.senderr(req,res,err);
}
else{
app.send(req,res,jsondata);
}
});
答案 0 :(得分:0)
这不是给你错误的async.each
但它是Mongoose,因为你传递的参数太多而应该是一个函数的是一个对象。
改变这个:
{ upsert: true },{ multi: true },
到此:
{ upsert: true, multi: true },