1
當我在我使用它們的同一個文件中定義我的模式和模型時,一切正常。貓鼬引入模型將不起作用
不過,如果我輸入他們就像我看到所有的例子在淨進口他們:這樣的...
index.js
var mongoose = require('mongoose');
var User = require('./../models/user');
mongoose.connect('mongodb://localhost/demo_database', function(){
var user = new User({...});
});
user.js的
var mongoose = require('mongoose');
var UserSch = new mongoose.Schema({
...
});
module.exports = mongoose.model('user', UserSch);
...那麼我在index.js中用戶的任何實例上運行的任何函數都會掛起。
我已經通過將貓鼬變量user.js的像這樣圍繞這個工作...
index.js
var mongoose = require('mongoose');
var User = require('./../models/user')(mongoose);
mongoose.connect('mongodb://localhost/demo_database', function(){
var user = new User({...});
});
user.js的
module.exports = function(mongoose) {
var UserSch = new mongoose.Schema({
...
});
return mongoose.model('user', UserSch);
}
爲什麼我必須這麼做,而所有我見過的例子都不這樣做?
謝謝!
附加信息
如果我提出user.js的到同一文件夾中index.js並做var User = require('./user')
,一切正常。
首先,你需要連接貓鼬!看看我的例子:https://github.com/Talento90/ima-up/ –
@MarcoTalento我是,我只是簡單地離開這篇文章。就像我說的那樣,它的全部都在同一個文件中。當模型導入時,我可以在mongodb日誌中看到連接,但.find或.save回調從不會被調用,並且腳本會掛起。 –
@MarcoTalento我編輯帖子以顯示我打電話的地方mongoose.connect() –