0
我有下面的代碼,我打開一個新的貓鼬連接插入記錄,但是當我嘗試關閉連接後forEach(應該是阻止),然後它執行mongoose.connection.close()inmediatly和不會在數據庫中插入任何記錄。任何想法如何做到這一點?如何在forEach執行後關閉mongoose連接?
這裏是我的代碼
'use strict';
const mongoose = require('mongoose');
const xlsx = require('node-xlsx');
const Model = require('./model');
mongoose.connect('mongodb://localhost:27017/exel', (err) => {
if (err) throw err;
});
let obj = xlsx.parse(file);
obj[0].data.forEach((item, index) => {
let newItem = {
nombre: item[2],
localidad: item[7],
cargo: item[8]
}
Model.create(newItem)
.then((createdItem) => {
console.log(createdItem);
})
.catch((err) => {
console.log(err);
});
});
mongoose.connection.close();
我試圖創建與裏面在foreach代碼的功能並添加mongoose.connection.close()作爲回調,使用承諾,使用異步和其他幾個人,但沒有用。
你誤會了節點如何以異步方式工作。然而,正如你聲明的那樣,'forEach'被阻塞了,然而,你會循環一切並調用'Model.create',它立即返回(它正在等待它的回調被觸發)。這意味着'mongoose.connection.close'會立即執行。嘗試查看每個循環的異步異步。 – MrWillihog