通过Promise将Node js连接到Mongo Atlas

时间:2019-06-26 21:32:11

标签: javascript node.js mongodb

大家好,我是异步编程的新手,所以我对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

1 个答案:

答案 0 :(得分:1)

就像调用一个函数一样:

const mongoconnect=require('./utils/database');
mongoconnect().then(results=>{
  console.log(results);
}).catch(err=>console.log(err));