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();
回答が役に立つことを願っています!