这是我的server.js文件
const express = require('express');
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 }
);
const connection = mongoose.connection;
connection.once('open', () => {
console.log("MongoDB database connection established successfully");
})
app.listen(port, () => {
console.log(`Server is running on port: ${port}`);
});
.env文件
ATLAS_URI=mongodb+srv://nitin:password@data.ztmkm.mongodb.net/test?retryWrites=true&w=majority
我得到这个错误
(节点:16036)UnhandledPromiserEjectionWarning:错误:QueryReqWrap.OnResolve[as oncomplete](dns.js:203:19)处的queryTxt timeout data.ztmkm.MongoDB.NET(使用节点--trace-warnings...
显示警告是在何处创建的)(节点:16036)UnhandledPromiserEjectionWarning:未处理的承诺拒绝。这个错误可能是由于抛出一个没有catch块的异步函数内部,或者是由于拒绝了一个未用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志--unhandled-rejections=strict
(请参见https://nodejs.org/api/CLI.html#CLI_unhandled_rejections_mode)。(拒绝ID:1)(节点:16036)[DEP0018]拒绝警告:不推荐未处理得承诺拒绝.将来,未处理的承诺拒绝将以非零退出代码终止node.js进程。
mongoose.connect()方法将在成功连接到db之后抛出一个承诺,而您没有编写代码来执行该承诺,因此不是这样
mongoose.connect(uri, { useNewUrlParser: true, useCreateIndex: true }
);
const connection = mongoose.connection;
connection.once('open', () => {
console.log("MongoDB database connection established successfully");
})
使用这个
const connect=mongoose.connect(uri, { useNewUrlParser: true, useCreateIndex: true });
connect.then((db)=>
{
console.log("connected correctly to the server")
},(err)=>
{
console.log(err)
})