nodejs mongoose在部署到aws时显示错误,在本地机器上工作

Posted

技术标签:

【中文标题】nodejs mongoose在部署到aws时显示错误,在本地机器上工作【英文标题】:nodejs mongoose showing error while deploying to aws, working on local machine 【发布时间】:2020-12-28 07:54:02 【问题描述】:
mongoose
  .connect(
    "mongodb+srv://node-sandbox:" +
    process.env.MONGO_ATLAS_PW +
      "@node-sandbox-2hdom.mongodb.net/test?retryWrites=true&w=majority",
    
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useFindAndModify: false,
      useCreateIndex: true,
    
  )
  .catch((err) => 
    console.log("printing mongoose error - " + err);
  );
mongoose.Promise = global.Promise;

一个 nodejs 项目在使用 CodePipeline 和 github 在 aws 上部署时显示错误,而在我的本地机器上运行时却运行良好。

错误-

printing mongoose error - MongoError: bad auth Authentication failed.
printing mongoose error - MongooseServerSelectionError: bad auth Authentication failed. 


connect() failed (111: Connection refused) while connecting to upstream, client: 172.31.37.102, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "172.31.8.154"

编辑: 我是后端开发的新手。 尝试通过邮递员连接时收到此响应 -

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.16.1</center>
</body>
</html>

我认为 mongo 连接没有任何问题,在 mongo 控制台中它只显示一个连接。所以还有其他问题!查不出问题! 也许是一些 http/https 问题。

【问题讨论】:

代码看起来不错,您确定 process.env.MONGO_ATLAS_PW 在 AWS 上的值正确吗? 有一段时间我也在 github 中添加了 .env 文件,以便环境变量与开发环境变量相同。但它仍然无法正常工作。在aws上添加环境变量的任何其他方式? @Chcamiloam 【参考方案1】:

我正在处理同样的问题,我必须在 buildspec.yml 中添加我的应用程序运行所需的文件

当它失败时,我的 buildspec.yml 文件在工件部分只有下面的代码:

artifacts:
  files:
    - app.js
    - package.json

我修复了它添加 node_modules/**/*

artifacts:
  files:
    - app.js
    - package.json
    - node_modules/**/*

【讨论】:

以上是关于nodejs mongoose在部署到aws时显示错误,在本地机器上工作的主要内容,如果未能解决你的问题,请参考以下文章

将 nodejs/mongoose 部署到 heroku

使用 pyspark aws 胶水时显示 DataFrame

如何使用 ReactJS/NodeJS 一起部署到 Amazon Web Services (AWS)?

Python Flask Web API [Heroku]:它在本地运行,但在部署时显示应用程序错误

如何将 React + NodeJS Express 应用程序部署到 AWS?

在aws中部署node js的方法都有哪些?