gpt4 book ai didi

node.js - Mongoose 试图打开未关闭的连接(回调 hell )

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:27 24 4
gpt4 key购买 nike

我想在数据库记录中添加一个循环。但是 Mongoose 写道我没有关闭打开的连接。 Mongoose 试图打开未关闭的连接。如何使整个事情同步进行?它在我的代码中的回调 hell

 app.get("/dobavit/", function(req, res) {
for(var i=50; i>0; i--)
{
InsertAXIXA("analitika",i,function(data){
});
}
res.end();
});

function InsertAXIXA(qwerty,page,callback){
mongoose.connect('mongodb://localhost/gazprom')
var parsedResults = [];

var req = request('http://xxx.ru/'+qwerty+"?page="+page, function (error, response, html) {
if (!error && response.statusCode == 200) {
// str = iconv.decode(html, 'utf-8');
var $ = cheerio.load(html);
$('.col-1 .col-first').each(function(i, element){
var buf = $(this);
var zagolovok = buf.children(0).children().children().eq(0).text();
var previewText = buf.children(2).children().eq(0).text();
var url = buf.children(0).children().children().eq(0).attr('href');
var picUrl = buf.children(1).children().eq(0).children().children().eq(0).attr('src');


var metadata = {
zagolovok:zagolovok,
previewText:previewText,
url:url,
typeOfnews:qwerty,
picUrl:picUrl,
qwerty:qwerty
};
var news =new News({
zagolovok: zagolovok,
previewText: previewText,
url:url,
picUrl:picUrl,
qwerty:qwerty
// created_at:Date.today()

});
news.save(function(err, news,affected){
});
parsedResults.push(metadata);
});
callback(parsedResults);

}
mongoose.connection.close()
});

最佳答案

您实际上不需要在每次请求时都打开/关闭您的连接(有关更多信息,请参阅 here)。

相反,您可以在应用启动时打开一次连接,然后在应用关闭时让它关闭。

如果您让连接保持打开状态,您可以重用这些连接,而不是在每次调用该函数时都浪费时间/资源建立一个新连接。

关于node.js - Mongoose 试图打开未关闭的连接(回调 hell ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22489933/

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