连接mongoDB时无法访问代码

问题描述 投票:0回答:2

我正在尝试对我的 Node.js 应用程序进行 dockerize,但它不起作用。我将错误点缩小到两行,但我就是无法找到问题的根源。如果您需要更多,我会分享我的代码,只需询问即可。我正在使用树莓派 3 来部署我的容器 unsing portainer。也许我错过了那里的设置。

console.log("Hello from the docker3")

//Database
const mongoose = require("mongoose");

mongoose.connect(
  `mongodb+srv://{process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_ADDRESS}/`
);
console.log("Hello from the docker4")

其余的代码只是一些发送的网页和一些express.js的东西。

My error

我从这部分得到这个错误,你可以看到打印数字 4 没有被打印,所以我认为它在那里的某个地方

我到处寻找,但找不到原因。

node.js docker express mongoose portainer
2个回答
0
投票

您能否修改连接代码以记录连接过程中发生的任何错误。这可以让您更深入地了解正在发生的事情:

const mongoose = require("mongoose");
console.log("Hello from the docker3");

mongoose.connect(
  `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_ADDRESS}/`,
  { useNewUrlParser: true, useUnifiedTopology: true }
).then(() => {
  console.log("Connected to MongoDB successfully");
}).catch((error) => {
  console.error("Error connecting to MongoDB:", error);
});

0
投票

mangoose 返回 Promise 对象,如果我们想从 Promise 对象获取响应,我们必须使用 wait 或尝试以下方法

try {
    await mongoose.connect(
        mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_ADDRESS}/
    );
    console.log("Connected to MongoDB");
} catch (error) {
    console.error("Failed to connect to MongoDB:", error);
}

确保环境变量(DB_USER、DB_PASSWORD、DB_ADDRESS)设置正确。您可以将这些值打印到控制台,以验证是否从环境中正确检索它们:

console.log("DB_USER:", process.env.DB_USER);
console.log("DB_PASSWORD:", process.env.DB_PASSWORD);
console.log("DB_ADDRESS:", process.env.DB_ADDRESS);
© www.soinside.com 2019 - 2024. All rights reserved.