首页 > 解决方案 > 我在 Schema 中收到一条错误消息,指出它未注册。请参阅下面的说明

问题描述

所以。我正在尝试将 mongoDB 与使用 mongoose 的 expressjs 项目一起使用,但出现此错误

C:\Users\Sanjay\Desktop\BasicNodeJS\node_modules\mongoose\lib\index.js:434 throw new mongoose.Error.MissingSchemaError(name); ^ MissingSchemaError: 模式尚未注册模型“博客”。使用 mongoose.model(name, schema)

请查看下面的源代码,让我知道需要做哪些更改

这是架构代码.... blog.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

let blogSchema = new Schema(
    {
        blogId: {
            type: String,
            unique: true
        },
        title: {
            type: String,
            default: ''
        },
        description: {
            type: String,
            default: ''
        },
        bodyHtml: {
            type: String,
            default: ''
        },
        views: {
            type: Number,
            default: 0
        },
        isPublished: {
            type: Boolean,
            default: false
        },
        category: {
            type: String,
            default: ''
        },
        author: {
            type: String,
            default: ''
        },
        tags: [],
        created: {
            type: Date,
            default: Date.now
        },
        lastModified: {
            type: Date,
            default: Date.now
        }
    };
); 

mongoose.model('Blog', blogSchema)

这是主要的 js 文件代码... index.js

const express = require('express');
const appConfig = require('./config/appConfig');
const fs = require('fs');
const mongoose = require('mongoose');

const app = express();


let modelsPath = './models';
fs.readdirSync(modelsPath).forEach(function (file){
    if(~file.indexOf('.js')) {
        require(modelsPath+'/'+file);
    };
});

app.listen(appConfig.port, () => {
    console.log('example app listening on port 3000');
    let db = mongoose.connect('mongodb://127.0.0.1:27017/blogAppDB');
});

标签: javascriptnode.jsangular

解决方案


您可以尝试以下一种:

模型 :

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

let blogSchema = new Schema(
   /*your schema fields*/
    };
); 

module.exports = mongoose.model('Blog', blogSchema) // here we export this schema to use in controller part

控制器:

var Blog = require('../models/blog.js');

现在您可以使用博客进行数据库操作了


推荐阅读