2015-05-11 11 views
1

我使用MEAN堆棧形成了一個thinkster.io教程,似乎在它的結尾附近出現錯誤。節點似乎並沒有找到我的架構,儘管代碼看起來像這樣:MissingSchemaError:架構尚未註冊模型「用戶」

Users.js(在./models模型)

var mongoose = require('mongoose'); 
// some more code 
var UserSchema = new mongoose.Schema({ 
    username: {type: String, lowercase: true, unique: true}, 
    hash: String, 
    salt: String 
}); 
// then there are some UserSchema.methods.* here 
mongoose.model('User', UserSchema); 

app.js

// some definitions 
var mongoose = require('mongoose'); 
var passport = require('passport'); 
mongoose.connect('mongodb://localhost:27000/awsBase'); 

require('./models/Posts'); 
require('./models/Comments'); 
require('./models/Users'); 
require('./config/passport'); 

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

var app = express(); 
// and so on 

我錯過了什麼?我將非常感謝任何幫助或見解。

最好的問候,

彼得

回答

0

我認爲你犯的錯誤在app.js 型號名稱是「用戶」,但你在app.js

使用錯誤的型號名稱即「用戶」

- > require('./ models/Users');

它應該已經

--->要求( './模型/用戶');

+0

感謝您的提示,儘管據我所知,需求部分是確定的 - 它指向有效的Users.js文件。正如你可以看到[這裏](https://github.com/tigzytigz/flapper-news/blob/master/models/Posts.js)和[這裏](https://github.com/tigzytigz/flapper-news /blob/master/models/Comments.js)其他模型被定義爲單數形式並且需要複數形式, –

0

我認爲問題不在於你聲明模型的地方,而是你調用模型的時候。你的控制器中是否有這樣的代碼片段,可以分享?

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

User.find() 
+0

嗨,感謝您的回覆。我確實有一個類似於你提供的片段,可以在這裏找到(https://github.com/piotrjaw/flapper-news/blob/2f6613080747e0a9c9d1b5597ef6bcbade0c65e6/config/passport.js)。 –

+0

嗯好吧,這有點奇怪。你可以在第9行放置一個console.log(用戶)並報告結果嗎? – Banner

0

我知道這有點晚了,但是在嘗試運行'npm start'時遇到了類似的錯誤。我只是通過thinkster.io教程開始使用MEAN。在我的情況下,改變Users.js這一行做的伎倆:

mongoose.model('User', UserSchema); 

變化:

mongoose.model('Users', UserSchema); 

希望這可以幫助別人。