我一直收到这个错误“mongoose.model is not a function”

编程入门 行业动态 更新时间:2024-10-23 18:30:22

<a href=https://www.elefans.com/category/jswz/34/1770354.html style=我一直收到这个错误“mongoose.model is not a function”"/>

我一直收到这个错误“mongoose.model is not a function”

我收到这个错误,但我似乎找不到问题所在,我尝试了以下操作:

  1. 重新安装猫鼬
  2. 改变
    export default
    module.exports
  3. 将 MONGO_URI 从“mongodb://localhost:27017/”更改为“mongodb://127.0.0.1:27017/”
  4. 尝试使用“import”而不是 required 在 Product.js 中导入猫鼬
  5. 尝试删除“mongoose.model = {}”
  6. 尝试在 getproduct.js 中的产品之前导入 connectDb

但问题仍未解决我仍然收到以下错误:

error - models\Product.js (23:24) @ model
error - TypeError: mongoose.model is not a function
    at eval (webpack-internal:///(api)/./models/Product.js:48:75)
    at (api)/./models/Product.js (C:\Users\CoreCom\Desktop\next js\havenwear\.next\server\pages\api\getproducts.js:42:1)
    at __webpack_require__ (C:\Users\CoreCom\Desktop\next js\havenwear\.next\server\webpack-api-runtime.js:33:42)
    at eval (webpack-internal:///(api)/./src/pages/api/getproducts.js:5:73)
    at (api)/./src/pages/api/getproducts.js (C:\Users\CoreCom\Desktop\next js\havenwear\.next\server\pages\api\getproducts.js:52:1)
    at __webpack_require__ (C:\Users\CoreCom\Desktop\next js\havenwear\.next\server\webpack-api-runtime.js:33:42)
    at __webpack_exec__ (C:\Users\CoreCom\Desktop\next js\havenwear\.next\server\pages\api\getproducts.js:62:39)
    at C:\Users\CoreCom\Desktop\next js\havenwear\.next\server\pages\api\getproducts.js:63:28
    at Object.<anonymous> (C:\Users\CoreCom\Desktop\next js\havenwear\.next\server\pages\api\getproducts.js:66:3)
    at Module._compile (node:internal/modules/cjs/loader:1218:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
    at Module.load (node:internal/modules/cjs/loader:1081:32)
    at Module._load (node:internal/modules/cjs/loader:922:12)
    at Module.require (node:internal/modules/cjs/loader:1105:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at DevServer.runApi (C:\Users\CoreCom\Desktop\next js\havenwear\node_modules\next\dist\server\next-server.js:506:34)
    at DevServer.handleApiRequest (C:\Users\CoreCom\Desktop\next js\havenwear\node_modules\next\dist\server\next-server.js:861:21)
    at Object.fn (C:\Users\CoreCom\Desktop\next js\havenwear\node_modules\next\dist\server\next-server.js:815:46)
    at async Router.execute (C:\Users\CoreCom\Desktop\next js\havenwear\node_modules\next\dist\server\router.js:243:32)
    at async DevServer.runImpl (C:\Users\CoreCom\Desktop\next js\havenwear\node_modules\next\dist\server\base-server.js:432:29)
    at async DevServer.run (C:\Users\CoreCom\Desktop\next js\havenwear\node_modules\next\dist\server\dev\next-dev-server.js:814:20)
    at async DevServer.handleRequestImpl (C:\Users\CoreCom\Desktop\next js\havenwear\node_modules\next\dist\server\base-server.js:375:20)
    at async C:\Users\CoreCom\Desktop\next js\havenwear\node_modules\next\dist\server\base-server.js:157:99
  21 |   // module.exports = mongoose.model("Product", ProductSchema);
  22 |
> 23 | export default mongoose.model("Product", ProductSchema);

这里是代码:

Product.js:

const mongoose = require('mongoose');


const ProductSchema = new mongoose.Schema({
    title: {type: String, required:true},
    slug: {type: String, required:true , unique:true},
    desc: {type: String, required:true},
    img: {type: String, required:true},
    category: {type: String, required:true},
    size: {type: String},
    color: {type: String},
    price: {type: Number, required:true},
    availableQty: {type: Number, required:true},
    
    
  }, {timestamps:true} );
  mongoose.model = {}

  // mongoose.model("Product", ProductSchema)
  // module.exports = mongoose.model("Product", ProductSchema);

export default mongoose.model("Product", ProductSchema);

猫鼬.js:

import mongoose from "mongoose";
const connectDb = handler => async (req, res) => {
    // checking if connection is already extablished
    if(mongoose.connections[0].readyState){
        return handler(req,res)
    }
    
    await mongoose.connect(process.env.MONGO_URI)
    return handler(req,res);
}
export default connectDb

getproducts.js:

import Product from "../../../models/Product"
import connectDb from "../../../middleware/mongoose"
const handler = async (req,res)=>{
    let products = await Product.find()
    res.status(200).json({products})
  }

export default connectDb(handler)

.env.local:

MONGO_URI=mongodb://localhost:27017/codeswears
回答如下:

更多推荐

我一直收到这个错误“mongoose.model is not a function”

本文发布于:2024-05-13 15:29:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759864.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:我一直   错误   mongoose   model   function

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!