node.js - 除非服务器在本地机器上运行,否则应用程序无法连接到 Heroku 上的 mongodb
问题描述
问题是当我也在运行连接到我的本地机器上的服务器(npm run server.js)时,应用程序只连接到heroku上的mongodb
服务器.js
const uri = process.env.MONGODB_URI
console.log(uri);
mongoose.connect(uri,
{
useNewUrlParser: true,
useUnifiedTopology: true
}, (err) => {
if (err) {
console.log(err)
console.log('Unable to connect to database');
process.exit(1);
}
else
console.log('Successfully connected to the database')
});
const port = process.env.PORT || 5000;
app.listen(port, () => {
console.log(`App is running`);
});
如果上面的代码没有在我的本地机器上运行,应用程序将不会连接到 heruko 上的数据库。
process.env.MONGODB_URI
位于 .env 文件中,我还获得了 heroku 上具有相同值和键的配置变量。
"start": "node server.js",
"client": "cd client && npm start",
"server": "nodemon server --ignore client /",
"dev": "concurrently \" npm run client\" \"npm run server\" ",
"heroku-postbuild": "cd client && npm install && npm run build"
这些是我的 package.json 中的脚本
解决方案
推荐阅读
- r - 如何写出`\sum_{k\neq i} x_{k}y_{K}`的总和?
- php - MAMP 6 - 全新安装时下载的 PHP 文件
- c# - Audit.Net 不跟踪新值
- google-cloud-spanner - Spanner 数值数据类型的 Java 等效项
- php - 获取 PHPSpreadsheet 行的计算高度
- json - 使用 Angular http get 从 json 文件中读取数据
- python - DJANGO + windows:.bat 文件:打开命令提示符并运行命令
- javascript - 提取字符串的特定部分
- blazor - 为什么 ValidationMessage 组件在使用 EditContext 时在 Blazor wasm 中不显示错误消息
- html - 如果输入类型是数字,如何更改输入框大小?