Javascript 如何在node express中从模型中获取数据?

Javascript 如何在node express中从模型中获取数据?,javascript,node.js,rest,express,backend,Javascript,Node.js,Rest,Express,Backend,我对MERN和stackoverflow不熟悉。 我想从mongodb数据库获取所有数据。但当我尝试通过邮递员,它显示以下错误 这是我的Model.js文件 Model.js const mongoose = require("mongoose"); const Schema = { name: { type: String, required: true }, code: { type: Strin

我对MERN和stackoverflow不熟悉。 我想从mongodb数据库获取所有数据。但当我尝试通过邮递员,它显示以下错误

这是我的Model.js文件 Model.js

const mongoose = require("mongoose");

const Schema = {
    name: {
        type: String,
        required: true
    },
    code: {
        type: String,
        required: true
    },
    passMark: {
        type: Number,
        required: true
    },
    lic: {
        type: String,
        required: true
    },
    subjects: [
        { 
            type: mongoose.Schema.Types.ObjectId, 
            required: false, 
            ref: 'Subjects' 
        }
    ]
};

const Model= mongoose.model("Model",Schema);

module.exports = Model;
const Model= require("../models/Model");
const route = require("express").Router();

route.get("/", (req,res)=>{
    Model.find()
   .exec((err, items)=>{
        if(!err){
            return res.json({items: items})
        }
    })
});
这是我的router.js文件 Router.js

const mongoose = require("mongoose");

const Schema = {
    name: {
        type: String,
        required: true
    },
    code: {
        type: String,
        required: true
    },
    passMark: {
        type: Number,
        required: true
    },
    lic: {
        type: String,
        required: true
    },
    subjects: [
        { 
            type: mongoose.Schema.Types.ObjectId, 
            required: false, 
            ref: 'Subjects' 
        }
    ]
};

const Model= mongoose.model("Model",Schema);

module.exports = Model;
const Model= require("../models/Model");
const route = require("express").Router();

route.get("/", (req,res)=>{
    Model.find()
   .exec((err, items)=>{
        if(!err){
            return res.json({items: items})
        }
    })
});

有人可以帮我解决这个问题。

这是瞎猜,但我相信出现错误是因为
Model.find()
不返回JSON数据。它返回Mongoose对象的集合,并带有额外的方法,如
.save()
。如果您想从Mongo中获得纯JSON,请添加
.lean()

Pro提示,使用async/await语法也一样:

route.get("/", async (req,res)=>{
   try{
       const items = await Model.find().lean().exec(); // .exec() returns a true Promise
       res.json({items});
   } catch(err) {
      res.status(500).end(err)
   }
});

您是否向服务器添加了中间件来解析json?您是否添加了
app.use(express.json())
?或者类似的?否则,您将遇到麻烦。除非我弄错了,
express.json()
用于解析传入的req.body。这里是空的,OP没有用它。@isaacsan123我用过它。@JeremyThille我用过它但它没用。谢谢