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时显示错误,在本地机器上工作的主要内容,如果未能解决你的问题,请参考以下文章
使用 pyspark aws 胶水时显示 DataFrame
如何使用 ReactJS/NodeJS 一起部署到 Amazon Web Services (AWS)?
Python Flask Web API [Heroku]:它在本地运行,但在部署时显示应用程序错误