首页 > 解决方案 > 如何在 MERN 堆栈中发送响应模式?

问题描述

我正在使用 mongoose 为数据库构建一个网站,我目前正在尝试编写一个快速路由,它不会发回存储在给定 ID 的数据,而是一个响应模式,其中包含每个属性的描述、数据类型的定义每个属性,以及该属性是否是可选的。

例如,这是我用于存储在我的数据库中的每个产品的模型

const productSchema = new Schema({
     name: {type: String, required: true},
     description: { type: String, required: false },
     image: {type: String, required: false},
     expirationDate: { type: Date, required: true },
     postedUser: { type: Schema.Types.ObjectId, ref: "User", required: true }
    }, {
    timestamps: true,
});

这是我为检索给定产品 ID 的数据而编写的路径。

router.route('/').get((req, res, next) => {
   Product.find(req.query)
     .then(products => {
        res.json(normalizer(products));
     })
     .catch(err => next(err));
 });

类似于 url localhost:5550/product/?_id=5ef5521062186e0190da17c9 返回存储在给定 ID 的数据的方式,我想创建一个路由,在调用 url localhost:5550/product/schema/ 时返回用于产品的模型?_id=5ef5521062186e0190da17c9。

标签: expressmongoosereduxmern

解决方案


您可以使用.schema模型上的属性来访问其架构

router.route('/').get((req, res, next) => {
   console.log(Product.schema)

   res.json(Product.schema)
 });

我不确定是不是这样,.schema否则.Schema您必须对其进行测试


推荐阅读