MongoParseError:不支持选项池大小、usenewurlparse

问题描述

我在运行“nodemon server”时收到错误“MongoParseError: options poolsize,usenewurlparse are not supported”。

这里是设置mongodb连接的代码

import app from "./server.js"
import mongodb from "mongodb"
import dotenv from "dotenv"

dotenv.config()
const MongoClient = mongodb.MongoClient

const port = process.env.PORT || 8000

MongoClient.connect(
  process.env.RESTREVIEWS_DB_URI,{
    poolSize: 50,wtimeout: 2500,useNewUrlParse: true,}
  )
  .catch(err => {
   
    console.error(err.stack)
    process.exit(1)
  })
  .then(async client => {
   
    app.listen(port,() => {
      console.log(`listening on port ${port}`)
    })
  })

解决方法

某些 MongoClient 选项已被弃用。

MongoClient.connect(
    process.env.RESTREVIEWS_DB_URI,{
        maxPoolSize: 50,wtimeoutMS: 2500,useNewUrlParser: true
    }

).catch(err => {
    console.error(err.stack)
    process.exit(1)
}
,

对猫鼬使用此配置

const express = require('express');
const mongoose = require('mongoose');

mongoose.Promise = global.Promise;
mongoose.set('useNewUrlParser',true);
mongoose.set('useFindAndModify',false);
mongoose.set('useCreateIndex',true);
mongoose.set('useUnifiedTopology',true);
mongoose.connect(your mongodb URI).then(()=> {
    app.listen(PORT,() => {
        console.log(`Listening on port` + PORT);
    })
}).catch((e) => {console.log(e)})

并且 app.listen 不是异步函数,您不需要为此使用 async

,

该版本停止支持 poolsize、wtimeout 和 useNewUrlParse。用我的编辑替换你的代码。

import app from "./server.js";
import mongodb from "mongodb"
import dotenv from "dotenv"
dotenv.config()
const MongoClient = mongodb.MongoClient

const port = process.env.PORT || 8000

MongoClient.connect(
    process.env.RESTREVIEWS_DB_URI,{
        maxPoolSize:50,wtimeoutMS:2500,useNewUrlParser:true
    }
)
.catch(err => {
    console.error(err.stack)
    process.exit(1)
})
.then(async client => {
    app.listen(port,() => {
        console.log('listening on port '+port)
    })
})