Node.js 未初始化2个Mongoose架构中的1个

Node.js 未初始化2个Mongoose架构中的1个,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我是Node和MongoDB的新手。我正在使用mongoose在Mongo上创建模式。我在1 models.js文件中创建了两个模式,如下所示 var mongoose = require('mongoose'); var postSchema = new mongoose.Schema({ username: String, text: String, created_at: {type: Date, default: Date.now} }); var userSchema = ne

我是Node和MongoDB的新手。我正在使用mongoose在Mongo上创建模式。我在1 models.js文件中创建了两个模式,如下所示

var mongoose = require('mongoose');

var postSchema =  new mongoose.Schema({
username: String,
text: String,
created_at: {type: Date, default: Date.now}
});

var userSchema =  new mongoose.Schema({
username: String,
password: String,
created_at: {type: Date, default: Date.now}
});





//declaring a model which has schema userSchema
mongoose.model("User", userSchema);
mongoose.model("Post", postSchema);
问题是我的用户模式正在初始化,并且工作正常。但是posts模式是一个问题。 这是我在启动服务器时遇到的错误:

C:\Users\rohit\Desktop\projects\chirp\module4\start\node_modules\mo
      throw new mongoose.Error.MissingSchemaError(name);
            ^
MissingSchemaError: Schema hasn't been registered for model "Post".
下面是我的api.js代码片段,它实际调用post模式来进行数据库查询

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Post = mongoose.model('Post');
...
router.route('/posts')
.get (function(req, res){

    Post.find(function(err, data){
        if(err){
            return res.send(500, err)
        }

        return res.send(data)
    })

})
这里是我的auth.js文件中的代码片段,它使用了用户模式,工作正常

var LocalStrategy   = require('passport-local').Strategy;
var bCrypt = require('bcrypt-nodejs');
var mongoose = require('mongoose');
var User = mongoose.model('User');
var Post = mongoose.model('Post');
module.exports = function(passport){

// Passport needs to be able to serialize and deserialize users to support     persistent login sessions
passport.serializeUser(function(user, done) {
    console.log('serializing user:',user._id);
    return done(null, user._id);
});

passport.deserializeUser(function(id, done) {
    User.findById(id, function(err, user){
        if (err){
            return done(err, false)
        }

        if(!user){
            return done('User not found', false)
        }

        return done(user, true);
    })


});

您没有在models.js中加载模型(用户和帖子)。 在
var mongoose=require('mongoose')之后添加以下行


var User=require('./models/User.js') 您没有在models.js中加载模型(用户和帖子)。
在
var mongoose=require('mongoose')之后添加以下行


var User=require('./models/User.js');但是为什么它对用户模式有效,而对Post模式无效呢?这很奇怪。看一看,但是为什么它对用户模式和Post模式都不起作用呢?这很奇怪。看看
var User = require('./models/user.js');  <-- type your user.js model path here
var Post = require('./models/post.js');  <-- type your post.js model path here