猫鼬架构尚未注册模型
我正在学习的平均堆,当我尝试使用来启动服务器
npm start
我得到一个异常说:
schema hasn't been registered for model 'Post'. Use mongoose.model(name, schema)
这里是我的内/models/Posts.js代码
var mongoose = require('mongoose');
var PostSchema = new mongoose.Schema({
title: String,
link: String,
upvotes: { type: Number, default: 0 },
comments: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Comment' }]
});
mongoose.model('Post', PostSchema);
我所看到的架构应注册为模型“邮政”,但什么能可能导致的异常被抛出?
提前致谢。
编辑:这里的异常错误
/home/arash/Documents/projects/personal/flapper-news/node_modules/mongoose/lib/index.js:323
throw new mongoose.Error.MissingSchemaError(name);
^
MissingSchemaError: Schema hasn't been registered for model "Post".
Use mongoose.model(name, schema)
这里是一个与猫鼬初始化app.js代码:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/news');
require('./models/Posts');
require('./models/Comments');
前行:
app.use('/', routes);
回答如下:
这不是与模型出口的问题。我遇到过同样的问题。
真正的问题是,需要为模特的语句
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/news');
require('./models/Posts');
require('./models/Comments');
低于该航线的依赖。只需将上面的路线依赖MongoDB的依赖关系。这是它应该是什么样子:
// MongoDB
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/news');
require('./models/Posts');
require('./models/Comments');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();