Экспресс-маршрутизатор не работает на мангусте. Пишет, что пользователь не определен

**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;

Я не знаю, почему он говорит, что пользователь не определен, потому что я правильно экспортировал маршрутизатор в app.js, используя module.exports = router. Я думаю, что module.export не работает должным образом и не переносит код в файл app.js. Спасибо за помощь

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
0
24
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

вместо

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

Попробуйте использовать

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

Я думаю, что нашел решение. Я перемещаю схему и модель в файл маршрутов, и это сработало.

Ankit Panda 23.04.2022 14:57
Ответ принят как подходящий

Поскольку принятый ответ довольно странный и не устраняет основную причину. Я пишу свои 2 цента здесь.

Node по умолчанию разделяет код по модулям, что означает, что код вашего приложения и код маршрута вашей игры не будут мешать/знать друг друга.

Чтобы заставить его работать, вы import or require другие модули в тот, который хотите использовать.
В вашем случае вам нужно импортировать пользователя в игровой маршрут.

Другие вопросы по теме