我正在尝试对我的 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的东西。
我从这部分得到这个错误,你可以看到打印数字 4 没有被打印,所以我认为它在那里的某个地方
我到处寻找,但找不到原因。
您能否修改连接代码以记录连接过程中发生的任何错误。这可以让您更深入地了解正在发生的事情:
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);
});
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);