【问题标题】:MongoDB Atlas with NodeJS using Mongoose is not connecting使用 Mongoose 的带有 NodeJS 的 MongoDB Atlas 未连接
【发布时间】:2021-08-29 13:18:39
【问题描述】:

嘿,我开始用restapi学习一个nodejs。但我正在尝试连接我的 mongodb 地图集,但它给了我这个错误:

MongoParseError: Invalid connection string
    at parseConnectionString (D:\Working\nodeJS\node_modules\mongodb\lib\core\uri_parser.js:573:21)
    at connect (D:\Working\nodeJS\node_modules\mongodb\lib\operations\connect.js:281:3)
    at D:\Working\nodeJS\node_modules\mongodb\lib\mongo_client.js:259:5
    at maybePromise (D:\Working\nodeJS\node_modules\mongodb\lib\utils.js:692:3)
    at MongoClient.connect (D:\Working\nodeJS\node_modules\mongodb\lib\mongo_client.js:255:10)
    at D:\Working\nodeJS\node_modules\mongoose\lib\connection.js:835:12
    at new Promise (<anonymous>)
    at NativeConnection.Connection.openUri (D:\Working\nodeJS\node_modules\mongoose\lib\connection.js:832:19)
    at D:\Working\nodeJS\node_modules\mongoose\lib\index.js:351:10
    at D:\Working\nodeJS\node_modules\mongoose\lib\helpers\promiseOrCallback.js:32:5
    at new Promise (<anonymous>)
    at promiseOrCallback (D:\Working\nodeJS\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:10)
    at Mongoose._promiseOrCallback (D:\Working\nodeJS\node_modules\mongoose\lib\index.js:1149:10)
    at Mongoose.connect (D:\Working\nodeJS\node_modules\mongoose\lib\index.js:350:20)
    at Object.<anonymous> (D:\Working\nodeJS\mongo.js:5:10)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)

monogo.js

const mongoose = require('mongoose')
require('dotenv').config()
mongoose.Promise = global.Promise

mongoose.connect('process.env.MONGOURUI',{ 
    useUnifiedTopology: true,
    useNewUrlParser: true,
    useCreateIndex:true,
    useFindAndModify:false,
 })
 .then(() => console.log('MongoDB Connected...'))
    .catch((err) => console.log(err))

**MONGOURUI=mongodb+srv://nodejspassword:nodejspassword@cluster0.qsis4.mongodb.net/nodeApi?retryWrites=true&w=majority; **

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:
    const mongoose = require('mongoose')
    require('dotenv').config()
    mongoose.Promise = global.Promise
    
    mongoose.connect(process.env.MONGOURI,{ 
        useUnifiedTopology: true,
        useNewUrlParser: true,
        useCreateIndex:true,
        useFindAndModify:false,
     })
     .then(() => console.log('MongoDB Connected...'))
        .catch((err) => console.log(err))
    
    

    您只需要从 process.env.MONNGOURI 中删除单引号,它就会起作用! 并确保 .env 文件中的 MONGOURI 变量名称相同。

    【讨论】:

    【解决方案2】:

    为了连接到地图集,请确保您已将您的 IP 地址列入白名单。你可以找到删除的步骤here

    【讨论】:

      猜你喜欢
      • 2019-03-14
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2020-02-22
      • 2020-07-25
      • 2017-09-09
      • 2018-11-11
      • 1970-01-01
      相关资源
      最近更新 更多