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