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

如何解决TypeError: Cannot read properties of undefined (reading '0')报错

报错原因

该问题由MongoDB Node.js驱动版本差异导致:

  • 3.x版本的insertOne执行成功后,返回的结果对象包含ops属性,存放插入成功的文档数组
  • 4.x及以上版本官方已移除ops属性,直接访问data.ops[0]会抛出异常

解决方案

方案1:适配高版本驱动(推荐)

insertOne执行成功后,传入的userData对象会被自动挂载刚生成的_id字段,直接返回该对象即可,修正后代码如下:

var db = require("../config/connection")
var collection = require("../config/collection")
const bcrypt = require('bcrypt')
module.exports={
    doSignup:(userData)=>{
        return new Promise(async(resolve,reject)=>{
            userData.Password = await bcrypt.hash(userData.Password,10)
            db.get().collection(collection.USER_COLLECTION).insertOne(userData).then(()=>{
                resolve(userData)
            })
        })
    },
}

方案2:回退驱动版本

无需修改业务代码,直接将MongoDB驱动降级到3.x最终稳定版即可:
执行命令:npm i mongodb@3.7.3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:24:04