如何使用 mongoose 连接 mongodb 和 digital ocean 数据库。我试过这种方式它不起作用。虽然在本地它说 Error: ENAMETOOLONG: name too long, open to the CA_CERT.请指导
mongoose
.connect(process.env.HOST, {
useNewUrlParser: true,
useCreateIndex: true,
ssl: true,
sslCA: process.env.CA_CERT.replace(/\\n/g, '\n')
})
最佳答案
以下方法对我有用
const mongoose = require("mongoose");
const colors = require("colors");
const path = require("path");
module.exports = async (server) => {
try {
let mongoCertPath = path.resolve("./config/ca-certificate.crt");
if (process.env.CA_CERT) {
fs.writeFileSync(mongoCertPath, process.env.CA_CERT);
}
await mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
tlsCAFile: mongoCertPath
});
console.log("mongo connection successful..".yellow);
server.listen(process.env.PORT || 5000, () =>
console.log(
`server running on ${process.env.NODE_ENV} mode, port ${process.env.PORT}..`
.yellow
)
);
} catch (error) {
console.log("mongo connection failed..".red);
console.log(error);
process.exit(1);
}
};
我的 .env 看起来像这样
MONGO_URI = mongodb+srv://doadmin:xxxxxx@db-mongodb-blrxx1-xxxxx-xxxxx.mongo.ondigitalocean.com/admin?authSource=admin&replicaSet=db-mongodb-blr1-xxxxx&tls=true
关于node.js - Mongoose 使用 SSL digital ocean 与 CA_CERT 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68405290/