You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js v18.13.0应用因MongoParseError崩溃,如何修复?

问题:WhatsApp克隆项目MongoDB连接崩溃

我正在开发WhatsApp克隆项目,前端已完成。但在尝试连接MongoDB并通过Postman API发送GET、POST请求时,代码出现崩溃。我的package.json中配置了"type":"module"。

终端错误输出

Listening on localhost:9000
D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongodb\lib\connection_string.js:282
        throw new error_1.MongoParseError(`${optionWord} ${Array.from(unsupportedOptions).join(', ')} ${isOrAre} not supported`);
              ^

MongoParseError: option usecreateindex is not supported
    at parseOptions (D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongodb\lib\connection_string.js:282:15)
    at new MongoClient (D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongodb\lib\mongo_client.js:45:63)
    at D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongoose\lib\connection.js:802:16
    at new Promise (<anonymous>)
    at Connection.openUri (D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongoose\lib\connection.js:799:19)
    at D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongoose\lib\index.js:409:10
    at D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongoose\lib\helpers\promiseOrCallback.js:41:5
    at new Promise (<anonymous>)
    at promiseOrCallback (D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongoose\lib\helpers\promiseOrCallback.js:40:10)       
    at Mongoose._promiseOrCallback (D:\Project\Guvi\Task\React\clone-whatsapp\wa-back\node_modules\mongoose\lib\index.js:1262:10) {
  [Symbol(errorLabels)]: Set(0) {}
}

Node.js v18.13.0
[nodemon] app crashed - waiting for file changes before starting...

我的代码

import express from 'express';
import mongoose from 'mongoose';
import Messages from './dbMessages.js';

const app = express();
const port = process.env.PORT || 9000;

app.use(express.json());

const connection_url = 'mongodb+srv://sarath_babayaga:Sarath@1996@cluster0.wzoouq0.mongodb.net/clone-whatsapp-backend?retryWrites=true&w=majority'
mongoose.connect(connection_url,{
    useCreateIndex: true,
    useNewUrlParser: true,
    useUnifiedTopology: true
})

app.get('/',(req,res)=>res.status(200).send('hello world!!!!'));

app.get('/messages/sync', (req, res) => {
    const dbMessage = req.body

    Messages.find ((err, data) => {
        if (err) {
            res.status(500).send(err)
        } else {
            res.status(200).send(data)
        }
    })
})


app.post('/messages/new', (req, res) => {
    const dbMessage = req.body

    Messages.create(dbMessage, (err, data) => {
        if (err) {
            res.status(500).send(err)
        } else {
            res.status(201).send(data)
        }
    })
})

app.listen(port,()=>console.log(`Listening on localhost:${port}`));

解决方案

错误原因

你使用的Mongoose版本较新,useCreateIndex、useNewUrlParser、useUnifiedTopology这些配置选项已被废弃,新版本MongoDB驱动不再支持,因此抛出MongoParseError。

修复步骤

  1. 移除mongoose.connect中的废弃配置选项,新版本Mongoose会自动启用这些特性,无需手动配置。
  2. 建议为数据库连接添加错误监听,方便排查后续问题。
  3. 可选:将回调风格的数据库操作改为Promise/async-await写法,代码更易维护。

修改后的代码

import express from 'express';
import mongoose from 'mongoose';
import Messages from './dbMessages.js';

const app = express();
const port = process.env.PORT || 9000;

app.use(express.json());

const connection_url = 'mongodb+srv://sarath_babayaga:Sarath@1996@cluster0.wzoouq0.mongodb.net/clone-whatsapp-backend?retryWrites=true&w=majority';

// 连接数据库并添加错误监听
mongoose.connect(connection_url)
  .then(() => console.log('MongoDB连接成功'))
  .catch(err => console.error('MongoDB连接失败:', err));

app.get('/',(req,res)=>res.status(200).send('hello world!!!!'));

app.get('/messages/sync', (req, res) => {
    Messages.find()
      .then(data => res.status(200).send(data))
      .catch(err => res.status(500).send(err));
})

app.post('/messages/new', (req, res) => {
    const dbMessage = req.body;
    Messages.create(dbMessage)
      .then(data => res.status(201).send(data))
      .catch(err => res.status(500).send(err));
})

app.listen(port,()=>console.log(`Listening on localhost:${port}`));

内容的提问来源于stack exchange,提问作者sarath_babayaga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:56:07