gpt4 book ai didi

node.js - forEach执行后如何关闭 Mongoose 连接?

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:35 25 4
gpt4 key购买 nike

我有以下代码,我打开一个新的 Mongoose 连接来插入记录,但是当我尝试在 forEach (应该是阻塞的)之后关闭连接时,它会立即执行 mongoose.connection.close()并且不会在数据库中插入任何记录。关于如何做到这一点有什么想法吗?

这是我的代码

'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() 作为回调,使用 Promise、使用 async 和其他一些方法,但没有任何效果。

最佳答案

您可以使用async为此。

例如:

async = require("async");
async.each(items, function(item, callback){
// Call an asynchronous function, often a save() to DB
item.someAsyncCall(function (){
// Async call is done, alert via callback
callback();
});
},
// 3rd param is the function to call when everything's done
function(err){
// All tasks are done now
doSomethingOnceAllAreDone();
}
);

关于node.js - forEach执行后如何关闭 Mongoose 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38699400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com