我一直收到这个错误“mongoose.model is not a function”"/>
我一直收到这个错误“mongoose.model is not a function”
我收到这个错误,但我似乎找不到问题所在,我尝试了以下操作:
- 重新安装猫鼬
- 改变
为export default
module.exports
- 将 MONGO_URI 从“mongodb://localhost:27017/”更改为“mongodb://127.0.0.1:27017/”
- 尝试使用“import”而不是 required 在 Product.js 中导入猫鼬
- 尝试删除“mongoose.model = {}”
- 尝试在 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”
发布评论