这是在我的.env文件中
DB_URL=mongodb://localhost:27017/ecomm
和connection.js文件是..
const mongoose=require('mongoose')
const {DB_URL}=process.env
console.log(process.env)
async function createConnection(){
console.log("create connection")
const connection=await mongoose.connect(DB_URL,{
useNewUrlParser:true,useUnifiedTopology:true,useCreateIndex: true
})
if (connection){
console.log("connected")
}
}
但是我得到的错误是...。
(node:2304) UnhandledPromiseRejectionWarning: MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
为什么我会出错? const {DB_URL} = process.env console.log({DB_URL})在控制台中未定义showm
答案 0 :(得分:1)
使用 dotenv 软件包 在连接文件中
require('dotenv').config();
connectDB();
function connectDB(){
// mongoose.set('useCreateIndex', true)
mongoose.connect(process.env.MONGODB_URI // your uriName,
{
useNewUrlParser: true,
poolSize: 20,
keepAlive: 300000,
reconnectTries:1000,
reconnectInterval: 90000
},function(err, db){
if(err){
console.log("Error in Connectiion to DB : ",err);
setTimeout(()=>{
connectDB();
},5000)
}else{
return(db);
}
}); // database conneciton to azure pro database
mongoose
.connection
.once('connected', () => console.log('Connected to database'));
}```
then use this code to connect it will also auto retry if connection fails
答案 1 :(得分:1)
在这一行上,
const {DB_URL}=process.env
您正在使用process.env对象而不是正确的变量字符串。 mongoose.connect接受字符串URL。请更正。