大家好,我是异步编程的新手,所以我对Promises进行了很好的学习,并进行了一些实践,但是到目前为止,我面临一个问题。为了将Mongo Atlas连接到Node js,我找到了一个写为>
App.js
const mongoconnect=require('./utils/database')
mongoconnect((client)=>{
console.log(client)
app.listen(3000)
})
utils / database.js
const mongodb=require('mongodb');
const Mongoclient=mongodb.MongoClient
const mongoconnect=(callback)=>{
Mongoclient.connect('mongodb+srv://ratnabh2615:ratnabh2614@cluster0-
altfm.mongodb.net/test?retryWrites=true&w=majority')
.then(client=>{
console.log('Connected')
callback(client)
})
.catch(err=>console.log(err))
}
module.exports=mongoconnect
因此您可以在utils / database.js中看到我们正在使用回调函数 但是我只想在这里使用Promise,所以我尝试实现自己,但由于我没有那么丰富的经验而失败了。您能解决这个问题吗?
我做了这样的事情,不知道有多大错
utils / database.js
const mongodb=require('mongodb');
const Mongoclient=mongodb.MongoClient
const mongoconnect=()=>{
return new Promise((resolve,reject)=>{
const url='mongodb+srv://ratnabh2615:ratnabh2614@cluster0-
altfm.mongodb.net/test?retryWrites=true&w=majority';
Mongoclient.connect(url).then(client=>{
console.log('Connected')
return resolve(client)
}).catch(err=>console.log(err))
})
}
module.exports=mongoconnect
App.js
const mongoconnect=require('./utils/database')
mongoconnect.then(results=>{
console.log(results)
app.listen(3000)
}).catch(err=>console.log(err))
但是我收到错误
mongoconnect.then(results=>{
^
TypeError: mongoconnect.then is not a function
答案 0 :(得分:1)
就像调用一个函数一样:
const mongoconnect=require('./utils/database');
mongoconnect().then(results=>{
console.log(results);
}).catch(err=>console.log(err));