【问题标题】:How to handle the error "first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string."如何处理错误“`mongoose.connect()` 或 `mongoose.createConnection()` 的第一个参数是一个字符串。”
【发布时间】:2022-02-15 21:21:30
【问题描述】:

请谁能告诉我为什么我在 Mongoose 中遇到此错误。我是新手,请在此代码中帮助我...

错误:openUri()uri 参数必须是字符串,得到“未定义”。确保mongoose.connect()mongoose.createConnection() 的第一个参数是字符串。

我的 db.js 代码是

import mongoose from 'mongoose'

const connectDb = async()=>{
    try{
        const conn = await mongoose.connect(process.env.MONGO_URL,{
            useUnifiedTopology:true,
            useNewUrlParser:true,
            useCreateIndex:true
        })
        console.log(`Mongo connect ${conn.connection.host}`)
    }
    catch(error){
        console.error(`Error : ${error.message}`)
        process.exit(1)
    }
}
export default connectDb;

我的 MONGO_URL 在 .env 中

而我的 server.js 代码是

import express  from 'express'
import dotnev  from 'dotenv'
import connectDb from './config/db.js'

connectDb()
const app = express()
dotnev.config()


app.get('/',(req,res)=>{
    res.send('API is running...')
})
const PORT = process.env.PORT || 5000
app.listen(PORT,console.log('Server running at 5000 port'))

我的终端正在显示

错误:openUri()uri 参数必须是字符串,得到“未定义”。确保mongoose.connect()mongoose.createConnection() 的第一个参数是字符串。

[nodemon] 应用程序崩溃 - 启动前等待文件更改...

【问题讨论】:

    标签: node.js reactjs mongodb mongoose


    【解决方案1】:

    您尝试在设置环境变量之前连接到数据库,这就是连接期间MONGO_URL = undefined 的原因。先拨打dotnev.config()

    dotnev.config() // set .env variables
    connectDb()     // connect w/ access to them 
    

    【讨论】:

      猜你喜欢
      • 2023-01-20
      • 2021-09-13
      • 2019-01-17
      • 2023-03-31
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 2016-10-03
      • 2023-03-10
      相关资源
      最近更新 更多