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

MongoDB连接报错:connectionString.startsWith不是函数及undertOne未定义

MongoDB连接及数据插入错误排查与修复

错误1:TypeError: connectionString.startsWith is not a function

问题原因

在moviedb.js中,错误地用new MongoClient()包裹连接字符串,导致传递给MongoClient.connect()的参数不是字符串类型的URI,而是MongoClient实例,触发了startsWith方法调用失败的错误。

修复方案

修改moviedb.js中的URI生成逻辑,直接拼接连接字符串:

import app from './server.js';
import ReviewsDAO from "./dao/reviewsDAO.js";
import mongodb from 'mongodb';
import dotenv from 'dotenv';

const MongoClient=mongodb.MongoClient

dotenv.config();

const mongo_username = process.env.MONGO_USERNAME;
const mongo_password = process.env.MONGO_PASSWORD;
// 直接生成连接字符串,无需用new MongoClient包裹
const uri = `mongodb+srv://${mongo_username}:${mongo_password}@cluster0.b5f7prn.mongodb.net/test`;

const port=4444;

MongoClient.connect(
  uri,
  {
    maxPoolSize: 50,
    wtimeoutMS: 2500,
    useNewUrlParser: true
  })
  .catch(err => {
    console.error(err.stack)
    console.error("Error connecting to the database:", err.message)
    process.exit(1)
  })
  .then(async client => {
    await ReviewsDAO.injectDB(client)
    app.listen(port, () => {
      console.log(`listening on port ${port}`)
    })
  })

同时删除server.js中重复的端口监听代码(避免端口冲突):

import express from 'express';
import cors from 'cors';
import reviews from './api/reviews.route.js';

const app = express();

app.use(cors());
app.use(express.json());

app.use('/api/v1/reviews', reviews);
app.use('*', (req,res)=>res.status(404).json({error:"Not found"}));

// 删除以下重复的监听代码
// app.listen( 4444, () => {
//     console.log(`Listening on port 4444`);
//   });

export default app;

错误2:undertOne() is not defined

问题原因

属于拼写错误,MongoDB的查询方法应为findOne(),代码中误写为undertOne()。

修复方案

检查ReviewsDAO.js或reviews.controller.js中的数据库操作代码,将所有undertOne()替换为findOne(),示例:

// 错误写法
const targetDoc = await collection.undertOne({ _id: ObjectId(docId) });

// 正确写法
const targetDoc = await collection.findOne({ _id: ObjectId(docId) });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:15:09