Mongoose类型错误:applyHooks.middlewareFunctions.flatMap不是函数

7rtdyuoh  于 2023-01-26  发布在  Go
关注(0)|答案(1)|浏览(135)

我得到一个错误后,运行一个简单的javascript代码与mongoose.这是错误:

const alreadyHookedFunctions = new Set(applyHooks.middlewareFunctions.flatMap(fn => ([fn, `$__${fn}`])))                                                                  
TypeError: applyHooks.middlewareFunctions.flatMap is not a function
  at Object.<anonymous> (C:\Users\Apeksha\Documents\MERN\mongoose\node_modules\mongoose\lib\helpers\model\applyHooks.js:29:71)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (C:\Users\Apeksha\Documents\MERN\mongoose\node_modules\mongoose\lib\schema.js:31:23)
    at Module._compile (internal/modules/cjs/loader.js:778:30)

这是我的script.js文件

const mongoose= require('mongoose')
const User= require('./User')

mongoose.connect("mongodb://localhost/testdb",
()=>{
    console.log('connected')
})

async function run(){
    const first_user= await User.create({
        name: 'Apeksha', 
        roll_no: 124, 
        city: 'Mumbai'
    })
    console.log(first_user)
}

这是我的User.js文件

const mongoose= require('mongoose')

const userSchema= new mongoose.Schema({
    name: String,
    roll_no: Number,
    city: String
})

module.exports= mongoose.model("User",userSchema)

我试着用npm i mongoose重新安装mongoose,我似乎找不出代码中出了什么问题。

uklbhaso

uklbhaso1#

我使用的是mongoose版本6.8.4,它需要节点版本16或以上。因为在Ubuntu 20.04(我的系统)中,节点的默认版本将是10.19.0(所以我在第一次遇到同样的错误)。尝试更新您的节点或通过将您的mongoose降级到版本5来使用相同版本的节点。

相关问题