1
我對node.js和MEAN堆棧非常陌生,但我試圖構建一個應用程序。在這個應用程序中,數據庫中會有一些默認數據。我希望這個數據人口在應用程序啓動時發生。所以,它基本上會檢查默認數據並在不存在的情況下創建它。在一種情況下(設置),這是存儲本地設置的一個記錄。在另一種情況下,它通過遍歷數組向數據庫添加多個默認記錄。我把所有這些放在一個模塊中,並在server.js中調用,但我有一種感覺,我做錯了。它看起來像我開始進入回調地獄,我想知道如果我應該使用異步庫或承諾或其他所有的一起。由於這些數據庫調用實際上在服務器啓動之前未命中,因此這可能是一個潛在的問題。Mongoose的默認數據庫數據
正如我所說,我是node.js的新手,所以任何輸入都會很棒。下面是模塊以及在app啓動時在server.js中調用的兩個函數。
謝謝!
var config = require('./config');
var Settings = require('./app/models/settings')
var Source = require('./app/models/source');
module.exports =
{
settings: function() {
//check to see if any records exists
Settings.find({}, function (err, settings) {
if (err)
return (err);
if (settings.length == 0) {
//populate default settings
var defaultSettings = new Settings();
console.log(defaultSettings);
defaultSettings.save(function(err){
return (err);
});
}
else {
return settings[0];
}
});
},
sources: function() {
Source.find({}, function (err, sources) {
if (sources.length == 0) {
defaultSources.forEach(function (item, index) {
s = new Source();
s.domain = item.domain;
s.loginPage = item.loginPage;
s.scanUrl = item.scanUrl;
s.sourceType = item.sourceType;
s.cssSelect = item.cssSelect;
s.save(function (err) {
if (err) return err;
});
});
}
});
}
}
var defaultSources = [
{
domain: 'http://tehparadox.com',
loginPage: 'http://tehparadox.com',
scanUrl: 'http://tehparadox.com/forum/f63/tv-shows-2010-2011-hd-1439182/',
sourceType: 'TV and Movies',
cssSelect: '.post a'
},
{
domain: 'http://tehparadox.com',
loginPage: 'http://tehparadox.com',
scanUrl: 'http://tehparadox.com/forum/f63/tv-shows-2010-2011-hd-1439182/',
sourceType: 'TV and Movies',
cssSelect: '.post a'
},
{
domain: 'http://tehparadox.com',
loginPage: 'http://tehparadox.com',
scanUrl: 'http://tehparadox.com/forum/f63/tv-shows-2010-2011-hd-1439182/',
sourceType: 'Index',
cssSelect: '.post a'
},
{
domain: 'http://tehparadox.com',
loginPage: 'http://tehparadox.com',
scanUrl: 'http://tehparadox.com/forum/f63/tv-shows-2010-2011-hd-1439182/',
sourceType: 'Search',
cssSelect: '.post a'
}
]
我不會那樣做,而是創建啓動配置頁像site.com/config,這將是第一次運行,是鬼配置是如何起作用 –
HI @ jack.the.ripper同樣的想法!我其實也是先試過這個,也許我會多檢查一下。謝謝! – user576838