我建設有和的NodeJS MongoDB數據庫web應用程序。目前,以下令我感到沮喪 - 我缺乏對回調/(a)同步元素的理解,仍然在學習這一點,所以我認爲它與這方面有關。的NodeJS MongDB查詢
我有兩個主要模塊:
DB.js出口 - 此功能時,通過自身叫:
DB.GetSuggestions: function(searchTerm) {
return MongoClient.connect(url).then(function(db) {
var collection = db.collection("AccentPairs");
collection.updateMany(
{Unstressed: searchTerm},
{$inc: {QueryCount: 1}}
);
var result = collection.aggregate([
{ $match: { Unstressed: searchTerm } },
{ $group: { _id: {"WordID": "$WordID", "WordName": "$WordName", "Unstressed": "$Unstressed", "Stressed": "$Stressed", "TranslationEn": "$TranslationEn"}, Forms: { $push: "$Field" }}}
]).sort({ Chosen: -1}).toArray();
db.close();
return result;
});
}
TextHandler.js:
var DB = require("../DB");
function ImportText(Text) {
var fullText = Text.trim();
var TextObject = {AuthorName: "", Title: "", Words: []};
var currentWord = "";
var BOS = true;
var EOS = false;
let reg = /([а-яА-ЯЁё́]+)([^а-яА-ЯЁё́]*)/g;
var result;
while (result = reg.exec(fullText)) {
BOS = EOS;
EOS = (result[2].indexOf(".") > -1);
currentWord = result[1];
WordObject = {WordText: result[1], WordID: "0", Options: [], Tail: result[2], BOS: BOS, EOS: EOS};
TextObject.Words.push(WordObject);
}
//This is what doesn't work - GetSuggestions within the loop doesn't work.
TextObject.Words.forEach(function(wd){
console.log(wd.WordText);
DB.GetSuggestions(wd.WordText).then(function(suggestions){
wd.Options = suggestions;
});
});
}
我想迭代通過TextObject.Words數組並使用GetSuggestions函數在數據庫中搜索建議。在循環之外調用GetSuggestions不起作用。
29335毫秒:馬克 - 掃1386.5(1440.6) - > 1386.5(1440.6)MB,1156.9/0.7毫秒[分配失敗] [在舊空間中的GC請求] [請求] 。 30456毫秒:馬克掃1386.5(1440.6) - > 1387.5(1424.6)MB,1120.6/0.7毫秒[不得已GC。 31576毫秒:馬克掃1387.5(1424.6) - > 1388.4(1424.6)MB,1119.4/0.7毫秒[不得已GC。
< --- JS堆棧跟蹤--->
==== JS堆棧跟蹤========================= ================
安全方面:000001186EBCFB49 1:/ *匿名/(又名/匿名* /)[C:\首頁\ CS \ TextAnalysis \ Ezhik \ node_modules \ mongodb \ lib \ url_parser.js:〜7] [p c = 000003CC6CBB279E](this = 000001186EB04381,url = 0000004FD766F421) 2:arguments adapter frame:2> 1 3:connect(aka connect) [C:\首頁\ CS \ TextAnalysis \ Ezhik \ node_modules \ MongoDB的\ LIB \星期一go_client.js:〜390] [PC = 000 ...
致命錯誤:CALL_AND_RETRY_LAST分配失敗 - 的JavaScript堆出來的內存
什麼錯誤,你接受? – 223seneca
你期待**發生了什麼? **實際**發生了什麼? – zero298
沒有錯誤 - 它只是卡在循環中。編輯:更新後。 – pwwolff