Express 路由器不适用于猫鼬。它说用户未定义

Express router is not working on mongoose. It is saying User is not defined

**App.js Code**

const express = require("express");
const { default: mongoose } = require("mongoose");
const gaming = require("./routes/gaming");
const app = express();
app.use(express.json());

app.use("/", gaming);


const dbConnect = mongoose.connect("mongodb://localhost:27017/Gaming");

const mySchema = new mongoose.Schema({
    name: String,
    genre: String,
    games: String,
})

const User = mongoose.model('gaming', mySchema);

app.listen(8000, ()=>{
    console.log("listing at port 8000");
})



***Routes Folder Code***

const express = require("express");
let router = express.Router();

router.post("/gaming", (req,res)=>{
    const addingData = new User({
        name: req.body.name,
        genre: req.body.genre,
        games: req.body.games
    })
 addingData.save((err,result)=>{
if (err = true){
    console.log(err);
}else{
    console.log("Document dubmited successfully");
}
    })
    res.send("saved new data");
})

   module.exports = router;

我不知道为什么它说 User is not defined 因为我使用 module.exports = router.out 将路由器正确导出到 app.js。我认为 module.export 没有正常工作并且没有将代码带到 app.js 文件中。感谢帮助

而不是

const User = mongoose.model('gaming', mySchema);

尝试使用

const User = (module.exports = mongoose.model('gaming', mySchema));;

因为接受的答案很奇怪,没有解决根本原因。我在这里写我的 2 美分。

默认情况下,Node 按模块分隔代码,这意味着您的应用代码和游戏的路由代码不会 interfere/know 彼此。

要使其正常工作,您 import or require 将其他模块添加到您要使用的模块中。
在您的情况下,您需要将 User 导入游戏路线。