Example #1
0
(function(){
    var ep = new EventProxy();
    ep.tail('tpl', 'data', function (tpl, data) {
        console.log(data + 's : run!');
    });
    ep.emit('tpl');
    var i = 0,
        times = 10,
        runId;
    runId =  setInterval(function(){
        if(i++ < times){
         ep.emit('data',i);
        }else{
            clearInterval(runId);
        }
    },10);
    
})();
Example #2
0
module.exports = search =  function(gitname,username){

    var resultArray = [],
        desUrl =url.replace(/gitname/g,gitname),
        g_page = 1,
        hasNext = 1,
        ep = new EventProxy();

    function getDate (){
       https.get(desUrl.replace(/pageNumber/g,g_page), function(res) {
           var source = "";

           res.on('data', function(data) {
               source += data;
           });

           res.on('end', function() {
               var $ = cheerio.load(source);
               if(!!$('.blankslate').html()){
                   hasNext = 0 ;
               }else{
                   $('.repo-list-item').each(function(_index,_item) {
                       resultArray.push({
                           name : $('.repo-list-name',_item).text().replace(/<\/?.+?>/g,"").replace(/\s+/g, ""),
                           description : $('.repo-list-description',_item).text().replace(/\n/g,"").trim(),
                           starTime : $('.repo-list-meta',_item).text().trim()
                       });
                   });
               }
               ep.emit('search');

           });
       }).on('error', function() {
           console.log("获取数据出现错误");
       });
   }
    getDate();

    ep.tail('search', function () {
        if(hasNext===1){
            g_page ++;
            getDate();
        }else{
            var queryArray = [];
            for(var i= 0,len=resultArray.length;i<len;i++){
                queryArray.push(resultArray[i].name);
            }
            ep.emit('updateStarItem',queryArray);

        }
    });
    ep.all('updateStarItem',function(queryArray){
        StarItem.prototype.get({
            name: { $in: queryArray }
        },function(err,starArray){
            var _insertArray = findNew(resultArray,starArray);
            console.log(_insertArray.length);
            if(_insertArray.length>0){
                StarItem.prototype.save(_insertArray,function(err,_array){
                    if (err) {
                        console.log(err);
                    }
                    //console.log(_array);
                    ep.emit('updateStar');
                });
            }else{
                ep.emit('updateStar');
            }

        });
    });
    ep.all('updateStar',function(){
        console.log("yes");
        Star.prototype.get({
            userName: username
        },function(err,starArray){
            var _insertArray = findNew(resultArray,starArray,1,username);
            console.log(_insertArray.length);
            if(_insertArray.length>0){
                Star.prototype.save(_insertArray,function(err,_array){
                    if (err) {
                        console.log(err);
                    }

                });
            }

        });
    });
};
Example #3
0
var fs = require('fs');
var ejs = require('ejs');
var EventProxy = require('eventproxy');
var ep = new EventProxy();

// 在所有指定的事件触发后,将会被调用执行
// 参数对应各自的事件名的最新数据
ep.tail('basehead', 'head', 'nav','leftbar', 'foot', 'basefoot', 'main', function(basehead,
		head, nav, leftbar, foot, basefoot, mainArr) {
	render(basehead, head, nav, leftbar, foot, basefoot, mainArr[0], mainArr[1]);
});

// 读取Base头部模板
fs.readFile('../unitTpl/basehead.html.tpl', 'utf8', function(err, basehead) {
	if (err)
		throw err;
	ep.emit('basehead', basehead);
});
// 读取头部模板
fs.readFile('../unitTpl/head.html.tpl', 'utf8', function(err, head) {
	if (err)
		throw err;
	ep.emit('head', head);
});
// 读取导航模板
fs.readFile('../unitTpl/nav.html.tpl', 'utf8', function(err, nav) {
    if (err)
        throw err;
    ep.emit('nav', nav);
});
//读取左侧导航模板
Example #4
0

  app.use(express.static(path.join(__dirname, 'public')));


});
app.configure('development', function(){
  app.use(express.errorHandler());
});
routes(app);



var ep=new EventProxy();
//第一次启动,保证所有初始数据存入数据库,才去updateStock因为其要依赖数据库的数据
var count=0;
ep.tail('exsit',function(empty){
    ++count;
    console.log("SavedStockNumber:"+count);
    if(count==2483)
    {
        //存完股票的配置信息到数据库,才启动网站
        http.createServer(app).listen(app.get('port'),app.get("ip"),function(){
            console.log("Express server listening on port " + app.get('port'));
        });
    }
});
//启动应用录入stock.xml到mongo数据库
InsertStockToDb(ep);