【问题标题】:Extracting schema from a mongoose schema file从猫鼬模式文件中提取模式
【发布时间】:2020-01-12 05:48:39
【问题描述】:

我正在尝试从猫鼬模式文件中提取模式,但导入的对象始终为空。 我知道甚至有用于从 mongoDB 中提取模式的库,但我正在尝试从 mongoose 文件中提取它。

以下是我尝试过的。

// App.js
import React from "react";
import "./styles.css";

import productSchema from "./models/product";

export default function App() {
  console.log(productSchema.schema);
  return (
    <div className="App">
      <h1>{productSchema.schema}</h1>
    </div>
  );
}

// product.js
const mongoose = require("mongoose");

const productSchema = mongoose.Schema({
  name: String,
  color: String,
  material: String,
  brandName: String,
  logo: String,
  dimensions: String,
  weight: String,
  battery: String,
  price: Number
});

module.exports = mongoose.model("Product", productSchema);

我收到 Cannot read property 'schema' of null 因为 productSchema 为空。

沙盒: https://codesandbox.io/s/mongooseform-c26vb?fontsize=14&hidenavigation=1&theme=dark

感谢任何建议

【问题讨论】:

    标签: reactjs mongodb mongoose


    【解决方案1】:

    你在浏览器中使用Mongoose,根据docs

    Mongoose 的浏览器库不支持保存文档、查询、填充、鉴别器或除架构和验证文档之外的任何其他 Mongoose 功能。

    我认为这就是对 model 函数的调用返回 null 的原因。您可以将架构和模型放在单独的文件中,并包含您需要的任何内容。

    App.js

    import productSchema from "./models/product-schema";
    
    export default function App() {
      console.log('Schema: ', productSchema);
      return (
        <div className="App">
          <h1></h1>
        </div>
      );
    }
    

    ./models/product-schema

    const mongoose = require("mongoose");
    
    const productSchema = mongoose.Schema({
      name: String,
      color: String,
      material: String,
      brandName: String,
      logo: String,
      dimensions: String,
      weight: String,
      battery: String,
      price: Number
    });
    
    module.exports = productSchema;
    

    ./models/product

    const mongoose = require("mongoose");
    const productSchema = require("./product-schema");
    
    module.exports = mongoose.model("Product", productSchema);
    

    查看更新后的沙盒:https://codesandbox.io/s/mongooseform-s3moh?fontsize=14&hidenavigation=1&theme=dark

    【讨论】:

      猜你喜欢
      • 2015-01-23
      • 2012-02-02
      • 2016-08-05
      • 2019-11-04
      • 2020-02-14
      • 2020-09-18
      • 1970-01-01
      • 2022-01-17
      • 2018-04-17
      相关资源
      最近更新 更多