node.js - db.close() 导致“UnhandledPromiseRejectionWarning”
问题描述
我正在尝试运行一个函数以插入猫鼬数据库,然后关闭连接。我的代码如下:
var db = mongoose.connection;
db.on('error', function (err) {
console.log('mongoose connection error: ', err);
});
db.once('open', function () {
console.log('mongoose connected successfully');
})
.then(() => { return seedMongo() })
.then(() => {
console.log('finished seeding database')
db.close()
})
.catch((err) => console.log('error with seeding mongo database: ', err))
当我运行它时,它给了我以下错误:
(node:14130) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 70)
当我不使用 db.close() 时,它会运行该函数和所有函数,但不会关闭连接,所以我知道该函数有效。
解决方案
connection.close()返回Promise
。.catch
您应该使用或使用async
函数来处理它。
或者简单地添加return
,以便可以在现有链中捕获。
推荐阅读
- android - Making ListView Clickable React Native
- javascript - Leaflet JS - external controls
- google-apps-script - 必须在每个新副本上启用 Admin SDK
- javascript - 检索两个频道的消息列表
- node.js - 访问 AzureBotStorage 中的所有用户数据
- oauth-2.0 - Maintaining oath callback URLs
- opencv - 为什么 MEAN SHIFT + ORB 没有检测到(所有)多个对象?
- version-control - RTC SCM 查询工作区退出代码
- python - 导入熊猫似乎正在使用已弃用的 python 模块
- ibm-cloud - Watson 自定义情绪