[英]cursor.forEach is not a function Node.js
在這里,我嘗試使用forEach方法來遍歷游標的每個文檔並將其推入結果數組,但是在forEach遇到錯誤
這是我的代碼:
var fetch = function(callback) {
// mongoose.connect('mongodb://localhost/registration');
mongoose.connect('mongodb://localhost/questiondb');
var cursor = user.find();
cursor.forEach(function (doc,err) {
if(!err)
resultArray.push(doc);
else
{
callback(false);
}
},
function () {
callback(resultArray);
});
};
錯誤是: TypeError:cursor.forEach不是一個函數
貓鼬的Model.find
返回Query
對象,而不是游標。 此外,如果您傳遞一個回調給find
,那么您將獲得嘗試使用fetch
創建的行為,其中將一系列文檔提供給該回調。
var fetch = function(callback) {
// Don't connect here, connect once during startup
// mongoose.connect('mongodb://localhost/questiondb');
user.find((err, resultArray) => {
if (!err) {
callback(resultArray);
}
else {
callback(false);
}
});
};
您需要轉換為數組
User.find(function (err,userx){
if (err){
throw err;
}
else{
//add this code sentence
var user_arr =Object.keys(userx).map(
function(key){
return userx[key];
}
);
//now, use forEach sentence
user_arr.forEach(function(us){
console.log(us.name);
})
}
})
由於游標不是數組,因此必須在數組上使用.forEach函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.