【发布时间】:2021-03-29 05:42:33
【问题描述】:
我正在尝试将我的 MERN 应用程序部署到数字海洋水滴(Ubuntu 20.04 服务器)。
现在,当我尝试使用 npm start 启动服务器时,出现以下错误。
代码sn-p如下:
server/config/db.js
const mongoose = require("mongoose");
const colors = require("colors");
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true,
});
console.log(`MongoDB connected: ${conn.connection.host}`.cyan.bold);
} catch (error) {
console.error(`Error: ${error.message}`.red.bold.underline);
process.exit(1);
}
};
2;
module.exports = connectDB;
但是,在我的本地机器上一切正常。如果我console.log(process.env.MONGO_URI),我会得到字符串。
在液滴中,我尝试执行以下操作:
export MONGO_URI=the_connection_string。即使那样,我也收到了错误。
我做错了什么?
【问题讨论】:
-
克隆 repo 后是否尝试运行 npm install?
-
是的,我在克隆 repo 后进行了 npm install 。当我尝试使用 npm start 运行服务器时出现错误。我正在从 .env 文件中加载 MONGO_URI 作为 mongoose.connect() 的第一个参数。这一切在我的本地机器上运行良好。我不知道为什么在 droplet 中出现错误。
-
酷,mongodb 在哪里运行?你如何配置这个变量 process.env.MONGO_URI?
-
我正在使用 MongoDB Atlas。当您说我如何配置此变量时,您是什么意思?能详细点吗?
-
当然。根据带有错误消息的图像。 mongodb URI 未定义。根据代码,您共享通过 MONGO_URI 环境变量接收的 URI。所以我猜这个变量是未定义的。尝试运行
export MONGO_URI=[url of your atlas cluster]; npm start。
标签: deployment web-deployment digital-ocean