Javascript 将nodemon服务器与MongoDB连接时出错

Javascript 将nodemon服务器与MongoDB连接时出错,javascript,node.js,database,mongodb,mongoose,Javascript,Node.js,Database,Mongodb,Mongoose,我试图将我的节点服务器与我的MongoDB数据库连接,但我一直遇到这个错误,我对node和MongoDB非常陌生,我尝试将useUnifiedTopology:true放入我的mongo构造函数中?我不知道我把事情搞砸了 const cors = require('cors'); const mongoose = require('mongoose'); require('dotenv').config(); const app = express(); const port = proce

我试图将我的节点服务器与我的MongoDB数据库连接,但我一直遇到这个错误,我对node和MongoDB非常陌生,我尝试将useUnifiedTopology:true放入我的mongo构造函数中?我不知道我把事情搞砸了

const cors = require('cors');
const mongoose = require('mongoose');

require('dotenv').config();

const app = express();
const port = process.env.PORT || 5000;

app.use(cors());
app.use(express.json());

const uri = process.env.ATLAS_URI;
mongoose.connect(uri, { useNewUrlParser: true, useCreateIndex: true,useUnifiedTopology: true}
);
const connection = mongoose.connection;
connection.once('open', () => {
  console.log("MongoDB database connection established successfully");
})

// const exercisesRouter = require('./routes/exercises');
// const usersRouter = require('./routes/users');

// app.use('/exercises', exercisesRouter);
// app.use('/users', usersRouter);

app.listen(port, () => {
    console.log(`Server is running on port: ${port}`);
}); ```




```Server is running on port: 5000
(node:21667) UnhandledPromiseRejectionWarning: MongoNetworkError: connection 0 to cluster0-shard-00-00-rsjfl.gcp.mongodb.net:27017 closed
    at TLSSocket.<anonymous> (/Users/MYNAME/Desktop/ExcersizeTracker/mern-excersize/backend/node_modules/mongodb/lib/core/connection/connection.js:352:9)
    at Object.onceWrapper (events.js:284:20)
    at TLSSocket.emit (events.js:196:13)
    at net.js:586:12
    at TCP.done (_tls_wrap.js:466:7)
(node:21667) 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: 1)
(node:21667) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code```
const cors=require('cors');
const mongoose=require('mongoose');
require('dotenv').config();
常量app=express();
const port=process.env.port | 5000;
应用程序使用(cors());
使用(express.json());
const uri=process.env.ATLAS_uri;
connect(uri,{useNewUrlParser:true,useCreateIndex:true,useUnifiedTopology:true}
);
const connection=mongoose.connection;
连接。一次('打开',()=>{
log(“MongoDB数据库连接成功建立”);
})
//const exercisesRouter=需要(“./路线/练习”);
//const usersRouter=require('./路由/用户');
//应用程序使用('/exercises',exercisesRouter);
//app.use('/users',usersRouter);
应用程序侦听(端口,()=>{
log(`Server正在端口上运行:${port}`);
}); ```
```服务器正在端口5000上运行
(节点:21667)未经处理的PromiserEjectionWarning:MongoneWorkError:连接0到cluster0-shard-00-00-rsjfl.gcp.mongodb.net:27017已关闭
在TLSSocket。(/Users/MYNAME/Desktop/exersizetracker/mern exersize/backend/node_modules/mongodb/lib/core/connection/connection.js:352:9)
在Object.onceWrapper(events.js:284:20)
在TLSSocket.emit(events.js:196:13)
net.js:586:12
在TCP.done(_tls_wrap.js:466:7)
(节点:21667)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。(拒绝id:1)
(节点:21667)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程```

以下是官方文档中的连接指南:

const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');

// Connection URL
const url = 'mongodb://localhost:27017';

// Database Name
const dbName = 'myproject';

// Create a new MongoClient
const client = new MongoClient(url);

// Use connect method to connect to the Server
client.connect(function(err) {
  assert.equal(null, err);
  console.log("Connected successfully to server");

  const db = client.db(dbName);

  client.close();
});

connect方法是异步的。您必须等待完成才能继续

...
(async () => {
   await mongoose.connect(uri, {useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true});
})();
...