1
私はNodeとMongoDBを初めて使用しています。私はMongooseを使ってMongoのスキーマを作成しています。1 of 2 Mongooseスキーマが初期化されない
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);
以下のように私はこの問題は私のユーザー・スキーマが初期化され、正常に動作しつつあるということである1 models.jsファイル内の2つのスキーマを作成しました。しかし、投稿スキーマは問題です。 このサーバの起動時に、私は取得エラーです:
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".
ここでは、実際にデータベースがここ
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)
})
})
を照会するために、ポストスキーマを呼び出しapi.jsから私のスニペットは、コードされていますユーザー・スキーマを使用し、それはあなたがあなたのmodels.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);
})
});
をしかし、なぜそれがユーザー・スキーマのためともポストスキーマのために働くのでしょうか? – rsisaudia
それは変です。 http://stackoverflow.com/questions/20832126/missingschemaerror-schema-hasnt-been-registered-for-model-userを見てください。 – deChristo