当前位置: 首页 > 知识库问答 >
问题:

无法将atlas与nodejs连接

傅嘉悦
2023-03-14

这是我的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进程。

共有1个答案

乐欣可
2023-03-14

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)
})
 类似资料:
  • 我无法使用我的应用程序甚至compass连接到mongoDB atlas,我收到了错误 连接11至cluster0-shard-00-02-uypd6。mongodb。净额:27017已结 这是我第一次尝试从本地连接,可能是LAN问题?在家里一切都很好

  • 我正在尝试将GCP应用程序引擎上运行的nodejs应用程序连接到Mongo Atlas,但我收到网络错误。我已经设置了VPC对等,启用了无服务器VPC连接器,并在app yaml中添加了VPC\u access\u连接器属性,并在Atlas中列出了连接器的IP范围。我看到的确切错误是 我的代码是

  • 我在php中使用firebase作为后端,但当我调用“ServiceAccount”的“fromJsonFile”方法时,我得到以下错误: 致命错误:未捕获错误:调用私有方法Kreait\Firebase\Service帐户::fromJsonFile()从上下文"在C:\xampp\htdocs\wordpress\wp-Content\plugins\firebase-connection.p

  • 我想把Tableau和Cassandra联系起来。 Tableau版本:10.0(我也尝试了8.3) Cassandra版本:3.0.8 DataStax Enterprise Server 5.0.2 我能够从Datastax DevCenter连接到Cassandra,所以我认为问题要么在画面端,要么在驱动程序本身。 我尝试了10.0和8.3版本的Tableau,都不起作用。 我遵循了以下指示

  • 我试图连接到我的mongoDb-Atlas从我的node.js应用程序 这是我的代码: 我得到的错误: AssertionError[ERR_ASSERTION]:null=[AssertionError[ERR_ASSERTION]:null==错误:密码包含非法的未转义字符]{at parseConnectionString(/Users/admin/Desktop/node/node_mod