【发布时间】:2019-05-06 10:15:45
【问题描述】:
我是 Web 开发的新手,但我有关于 MongoDB 和 Nodejs 驱动程序的问题,给出以下代码:
let MongoClient = require('mongodb').MongoClient;
const url = MY_URL;
const dbConnected = MongoClient.connect(url);
let dbInit = function (){
dbConnected.then(
(client) => {
let db = client.db('DB_NAME');
db.dropDatabase()
.then( () => {})
.catch( err => { throw err;})
return client;
}
)
.then(
(client) =>{
let db = client.db('knodels');
db.collection('Users').insertMany([
//data
])
.then( () => {})
.catch( err => { throw err;})
return client;
}
)
.then(
(client) =>{
client.close();
}
)
.catch((err) => {throw err;})
}
我想实现那些事情:
- 删除数据库
- 删除后创建数据库并填充它
- 关闭连接
当我运行函数时,所有这些目标都实现了,但我认为代码有问题:
- 当
dbInit()运行时,一些UnhandledPromiseRejectionWarning被抛出 - 我猜那些必须异步的承诺的同步肯定有一些时髦
- 只在最后还是对所有 promise 进行错误捕获?
- 关闭客户端连接的承诺
【问题讨论】:
标签: node.js mongodb asynchronous