MissingSchemaError: モデル「User」のスキーマが登録されていません 質問する

MissingSchemaError: モデル「User」のスキーマが登録されていません 質問する

models/user.js私のファイルでは:

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

var userSchema = new Schema({
    (define schema)
});
...
(save user)
...
(check password)
...
mongoose.model('User', userSchema);

そして私の にはrouter/index.js、次のものがあります:

var mongoose = require('mongoose');
var User = mongoose.model('User');

次のエラーが発生します:

MissingSchemaError: Schema hasn't been registered for model "User".

しかし、 の場合user.js、私は(最後の行で)

module.exports = mongoose.model('User', userSchema);

そしてindex.js私が行うvar User = require('../models/User');と、すべてがうまくいきます。

しかし、それはあってはならないことです。なぜなら、config/pass.js私はそうしておりvar User = mongoose.model('User');、それは完璧に機能しているからです。

構文require('../models/User');は Ubuntu では機能しませんが、Mac では機能します。

どうすればいいでしょうか?どうすれば直りますか?私はたくさんのサンプルアプリを見てきましたが、平均しかし、本当に役立つものはありませんでした。

ベストアンサー1

MEAN チュートリアルを試しているときにも同じ問題が発生しました。

少し調べたところ、app.js で、var routing = require("./routes/index") の前に require("./models/User") を置くと動作することがわかりました。

このような:


mongoose.connect("mongodb://localhost/news");
require("./models/Posts");
require("./models/Comments");

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

回答が役に立つことを願っています!

おすすめ記事