我对node.js和MEAN堆栈很陌生,但我正在尝试构建一个应用程序。在此应用程序中,数据库中将存在一些默认数据。我希望在应用启动时发生此数据填充。因此,它基本上检查默认数据并在不存在时创建它。在一种情况下(设置),这是将存储本地设置的一条记录。在另一种情况下,它通过遍历数组向数据库添加几个默认记录。我把所有这些放在一个模块中并在server.js中调用它,但我有一种感觉,我做错了。看起来我开始陷入回调地狱,我想知道我是不是应该使用异步库来实现这个目标,还是应用其他东西。由于这些数据库调用在服务器启动之前实际上没有命中,因此可能是一个潜在的问题。
正如我所说,我是node.js的新手,所以任何输入都会很棒。下面是模块和启动应用程序时在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'
}
]
答案 0 :(得分:0)
我明白了!这里有很多,但我基本上了解了承诺,它改变了一切!
^((?:0|[1-9]\d*)(?:\.\d{1,2})?)$