Example #1
0
        stockDataRes.on('end',function(){
            var buf=new Buffer(stock_data,'binary');
            var stock_data_=iconv.decode(buf,'GBK');


            var stockDataArray=stock_data_.split(";");
            //分割会多出一个“/n”的一个stockData,下面数组用stockArray.length,而不是stockDataArray.length
            for(var k=0;k<stockArray.length;++k)
            {
                stockArray[k].SliceAssignStockData(stockDataArray[k]);
            }
            //全部数据拿到
            var stockArrayString100="";
            for(var k=0;k<stockArray.length;++k){
                if(stockArray[k].now_price_==undefined)
                {
                    //中止上市的股票(什么都获取不到)
                    var stockArrayString='['+

                        '"'+stockArray[k].number_+'",'+
                        //ajax刷新的时候,不用更新代码和名称,但要传送number做前端识别
                        '"'+stockArray[k].cname_+'",'+
                        '"'+stockArray[k].pinyin_+'",'+
                        '"0.00%",'+
                        '"--",'+
                        '0.00,'+
                        '0.00,'+
                        '0.00,'+
                        //成交量/手除100
                        '0.00,'+
                        //成交额/万要除10000
                        '0.00,'+
                        '0.00,'+
                        '"--",'+
                        '0.00,'+
                        '0.00'+
                        ']';
                }
                else if(stockArray[k].today_first_price_==0.00)
                {
                    //停牌的股票(名字和现价,其他都为0
                    var stockArrayString='['+

                        '"'+stockArray[k].number_+'",'+
                        //ajax刷新的时候,不用更新代码和名称,但要传送number做前端识别
                        '"'+stockArray[k].cname_+'",'+
                        '"'+stockArray[k].pinyin_+'",'+
                        '"0.00%",'+
                        '"--",'+
                        '0.00,'+
                        '0.00,'+
                        '0.00,'+
                        //成交量/手除100
                        '0.00,'+
                        //成交额/万要除10000
                        '0.00,'+
                        '0.00,'+
                        stockArray[k].yday_end_price_+','+
                        '0.00,'+
                        '0.00'+
                        ']';
                }else{

                    var stockArrayString='['+
                        '"'+stockArray[k].number_+'",'+
                        '"'+stockArray[k].cname_+'",'+
                        '"'+stockArray[k].pinyin_+'",'+
                        '"'+((stockArray[k].now_price_-stockArray[k].yday_end_price_)/stockArray[k].yday_end_price_*100).toFixed(2)+'%",'+
                        stockArray[k].now_price_+','+
                        (stockArray[k].now_price_-stockArray[k].yday_end_price_).toFixed(2)+','+
                        stockArray[k].buy_price_+','+
                        stockArray[k].sole_price_+','+
                        (stockArray[k].bargain_amount_/100).toFixed(2)+','+
                        (stockArray[k].bargain_value_/10000).toFixed(2)+','+
                        stockArray[k].today_first_price_+','+
                        stockArray[k].yday_end_price_+','+
                        stockArray[k].today_hightest_price_+','+
                        stockArray[k].today_lowest_price_+
                        ']';
                }


                stockArrayString100+=stockArrayString+',';

            }
            ep.emit('got_stock',stockArrayString100);
            //console.log("accepted all data:",stock_data_);
        });
Example #2
0
exports.signup = function (req, res, next) {
  var loginname = validator.trim(req.body.loginname).toLowerCase();
  var email = validator.trim(req.body.email).toLowerCase();
  var pass = validator.trim(req.body.pass);
  var rePass = validator.trim(req.body.re_pass);

  var ep = new EventProxy();
  ep.fail(next);
  ep.on('prop_err', function (msg) {
    res.status(422);
    res.render('sign/signup', {
      error: msg,
      loginname: loginname,
      email: email
    });
  });

  // 验证信息的正确性
  if ([loginname, pass, rePass, email].some(
    function (item) {
      return item === '';
    }
  )
  ) {
    ep.emit('prop_err', '信息不完整。');
    return;
  }
  if (loginname.length < 5) {
    ep.emit('prop_err', '用户名至少需要5个字符。');
    return;
  }
  if (!tools.validateId(loginname)) {
    return ep.emit('prop_err', '用户名不合法。');
  }
  if (!validator.isEmail(email)) {
    return ep.emit('prop_err', '邮箱不合法。');
  }
  if (pass !== rePass) {
    return ep.emit('prop_err', '两次密码输入不一致。');
  }
  // END 验证信息的正确性

  User.getUsersByQuery({
    $or: [
      {
        loginname: loginname
      }, {
        email: email
      }
    ]
  }, {}, function (err, users) {
    if (err) {
      return next(err);
    }
    if (users.length > 0) {
      ep.emit('prop_err', '用户名或邮箱已被使用。');
      return;
    }

    tools.bhash(pass, ep.done(function (passhash) {
      // create gravatar
      var avatarUrl = User.makeGravatar(email);
      User.newAndSave(loginname, loginname, passhash, email, avatarUrl, false, function (err) {
        if (err) {
          return next(err);
        }
        // 发送激活邮件
        mailer.user.activate(email, utility.md5(email + passhash + config.session_secret), loginname, function () {
          res.render('sign/signup', {
            success: '欢迎加入 ' + config.name + '!我们已给您的注册邮箱发送了一封邮件,请点击里面的链接来激活您的帐号。'
          });
        });
      });
    }));
  });
};
Example #3
0
    Message.getAllMessages(page, userId, ep.done(function(messages) {
        ep.emit('message', messages);
	}));
Example #4
0
			read.on('error', function(error) {
				grunt.log.verbose.write('GET: ' + error.path + '...').error();
				read.emit('request', {src: error.path, code: ''});
			});
		UserProxy.getUserById({'_id': topic.author_id}, function(err, user) {
			ep.emit('author', user);
		});
Example #6
0
 Reply.getReplyById(topic.last_reply, proxy.done(function (last_reply) {
   proxy.emit('last_reply', last_reply);
 }));
Example #7
0
					request.fail(function() {
						grunt.log.error();
						ep.emit('end', false);
					});
Example #8
0
	Content.getAllContents(page, userId, ep.done(function(contents) {
        ep.emit('content', contents);
	}));
Example #9
0
 function (atUserId, authorId, topicId, replyId, callback) {
   // String(atUserId).should.equal(String(atUserIds[count++]));
   ep.emit('user_id', String(atUserId));
   callback();
 });
Example #10
0
	Article.find({}).count().exec(function(err, count){
		ep.fail(err);
		ep.emit('getPageNum', Math.ceil(count / config.page));
	});
Example #11
0
		Article.populate(articles, opts, function(err, doc){
			ep.fail(err);
			ep.emit('popuArt', doc);
		});
Example #12
0
	Author.find({}, '_id name', {sort: {name: 1}}, function(err, authors){
		ep.fail(err);
		ep.emit('getAuthor', authors);
	});
Example #13
0
	Category.find({}, '_id name', {sort: {name: 1}}, function(err, categories){
		ep.fail(err);
		ep.emit('getCate', categories);
	});
Example #14
0
	Article.findById(_id, function(err, article){
		ep.fail(err);
		ep.emit('getArt', article);
	});
Example #15
0
				post.save(ep.done(function(){
					ep.emit("got_author");
				}));
Example #16
0
exports.showDetail = function (req, res) {

  var _id = req.params._id;
  var usermail = req.session.user ? req.session.user.email : '';
  var user_id = req.session.user ? req.session.user.id : '';

  var ep = new EventProxy();


  ep.all('dataPhoto', 'isBuy', 'author', 'isFollow', function (dataPhoto, isBuy, author, isFollow) {


        var tmpData=_.pick(dataPhoto);
        tmpData.update_at=moment(tmpData.update_at).fromNow();

        //如果作者是当前登录用户
        if(author._id!=user_id){

          var authorIsNotSelf=true

        }



        //修改浏览次数
          Photo.updateCountById(_id, 1, function (err) {
            if (err) {
              return console.error('修改图片浏览次数出错了:', err);
            }

          });

        res.render('photo-view', {
            title: dataPhoto.title,
            photo: tmpData,
            authorIsNotSelf:authorIsNotSelf,
            isBuy: isBuy,
            author: author,
            isFollow: isFollow
        })

      })


  //1.判断是否购买
  if (usermail) {

    var checkIsBuy = (function () {
      if (!usermail) {
        return ep.emit('isBuy', false);
      }

      User.getUserByMail(usermail, function (err, userData) {
        if (err) {
          return ep.emit('error', err);
        }
        console.log(userData.hasBuy, _id);
        if (userData.hasBuy.indexOf(_id) > -1) {
          ep.emit('isBuy', true);
        } else {
          ep.emit('isBuy', false);
        }
      })
    })()

  } else {

    ep.emit('isBuy', false);

  }


  //2.获取图片信息
  Photo.findPhotoById(_id, function (err, dataPhoto) {
    if (err) {
      return ep.emit('error', err);
    }

    if(dataPhoto.author_id==user_id){
       ep.emit('isBuy', true);
    }

    ep.emit('dataPhoto', dataPhoto);

    getAuthorInfo(dataPhoto.author_id)

  })

  //3.获取作者信息

  function getAuthorInfo(id) {
    User.getUserID(id, function (err, data) {
      if (err) {
        return err
      }

      if (data.fans.indexOf(user_id) > -1) {
        ep.emit('isFollow', true);
      } else {
        ep.emit('isFollow', false);

      }

      ep.emit('author', data);
    })

  }








}
Example #17
0
 Topic.getCountByQuery(query, proxy.done(function (all_topics_count) {
   var pages = Math.ceil(all_topics_count / limit);
   proxy.emit('pages', pages);
 }));
 userInfoEp.fail(function (err) {
     ep.emit("error", err)
 });
Example #19
0
 .end((err, res) => {
   //console.log(`fetch ${topicUrl} successful`)
   ep.emit('topic_html', [topicUrl, res.text])
 })
Example #20
0
 Cart.findByIdAndUpdate(cart._id,{$set:{state:3}},{new:true},function(err,cart) {
     
                 ep.emit('s',detail)
         
         })
Example #21
0
			read.on('parseTpl', function(srcList, json) {
				srcList = srcList.map(function(value) {
					return template(value, json);
				});
				read.emit('get', srcList);
			});
Example #22
0
      .exec(function(err,order){
      //   console.log(order)
     ep.emit('order',order)
 })
Example #23
0
 Topic.getCountByQuery(query, proxy.done(function (all_topics_count) {
   var pages = Math.ceil(all_topics_count / limit);
   cache.set(JSON.stringify(query) + 'pages', pages, 60 * 1);
   proxy.emit('pages', pages);
 }));
Example #24
0
 .exec(function(err,details){
  //   console.log(details)
     ep.emit('details',details)
 })
Example #25
0
 _cate.save(function(err, cate) {
   ep.emit('move');
 })
Example #26
0
			UserDao.getUserById(users[a]._id,function(err,user){
				//时间处理
				user.friend_create_at = Util.format_date(user.create_at, true);
				proxy.emit('users',user);
				
			});
Example #27
0
 .end(function (err,res) {
    console.log('fetch' + topicUrl + 'successful');
   ep.emit('topic_html',[topicUrl, res.text]);
 });
Example #28
0
	Post.findOne({url:postInfo.url},ep.done(function(post){
		if(post){
			return ep.emit("got_author");
		}
		ep.emit("fetch_author");
	}))
Example #29
0
 Message.getTotal(userId, ep.done(function(total) {
     ep.emit('total', total);
 }));
Example #30
0
index.index = function(req,res){

	//设置监听
	ep.all('topicData','cateData','page','pageMax','tab',function(topicData,cateData,page,pageMax,tab){
		//关联查询 -- 以设置user(存储的是用户的id)
		//响应数据
		// console.log("000000000000000000000000")
		// console.log(cateData)
		// console.log(topicData)
		var data = {
			cateData:cateData,
			topicData:topicData,
			page:page,
			pageMax:pageMax,
			tab:tab
		}
		res.render('home/index',data);
	});

	//查询话题
	//1.同时需要查询出发表的用户
	//2.在首页显示的时候,我们只是需要获取话题的标题、浏览量、用户的头像(没有,使用用户名代替)
	//关联查询
	
	//分类
	var con= {};
	if(req.query.tab=='all'|| !req.query.tab){
		ep.emit('tab','all');	
	}else{
		con.cid=req.query.tab;
		ep.emit('tab',con.cid);	
	}
	
		// console.log(1111111111111111111111111111)
		// console.log(con)
	//分页
	
	var pageSize = 30;
	//当前页数
	// console.log(req.query.page);
	// console.log('1111111111111111')
	var page = req.query.page?req.query.page:1;
	// console.log(page)
	topicModel.find(con).populate('user').populate('cid','cateName').count().exec(function(err,total){

		if(page<=1){
			page= 1;
		};
		// console.log(total)
		var pageMax = Math.ceil(total/pageSize);
		// console.log(pageMax)
		// console.log('99999999999999999')
		if(page>=pageMax){page= pageMax};

		var pageOffset = (page-1)*pageSize;

		topicModel.find(con).populate('user','uname uportrait').skip(pageOffset).limit(pageSize).sort({createTime:-1}).populate('cid','cateName').exec(function(err,topicData){
			
			ep.emit('pageMax',pageMax);
			ep.emit('page',page);
			ep.emit('topicData',topicData);
		});
		//查询分类
		cateModel.find(function(err,cateData){
			// console.log(data);
			// res.render('home/index',{cateData,cateData});
			ep.emit('cateData',cateData);
		});
	});
};