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_); });
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 + '!我们已给您的注册邮箱发送了一封邮件,请点击里面的链接来激活您的帐号。' }); }); }); })); }); };
Message.getAllMessages(page, userId, ep.done(function(messages) { ep.emit('message', messages); }));
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); });
Reply.getReplyById(topic.last_reply, proxy.done(function (last_reply) { proxy.emit('last_reply', last_reply); }));
request.fail(function() { grunt.log.error(); ep.emit('end', false); });
Content.getAllContents(page, userId, ep.done(function(contents) { ep.emit('content', contents); }));
function (atUserId, authorId, topicId, replyId, callback) { // String(atUserId).should.equal(String(atUserIds[count++])); ep.emit('user_id', String(atUserId)); callback(); });
Article.find({}).count().exec(function(err, count){ ep.fail(err); ep.emit('getPageNum', Math.ceil(count / config.page)); });
Article.populate(articles, opts, function(err, doc){ ep.fail(err); ep.emit('popuArt', doc); });
Author.find({}, '_id name', {sort: {name: 1}}, function(err, authors){ ep.fail(err); ep.emit('getAuthor', authors); });
Category.find({}, '_id name', {sort: {name: 1}}, function(err, categories){ ep.fail(err); ep.emit('getCate', categories); });
Article.findById(_id, function(err, article){ ep.fail(err); ep.emit('getArt', article); });
post.save(ep.done(function(){ ep.emit("got_author"); }));
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); }) } }
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) });
.end((err, res) => { //console.log(`fetch ${topicUrl} successful`) ep.emit('topic_html', [topicUrl, res.text]) })
Cart.findByIdAndUpdate(cart._id,{$set:{state:3}},{new:true},function(err,cart) { ep.emit('s',detail) })
read.on('parseTpl', function(srcList, json) { srcList = srcList.map(function(value) { return template(value, json); }); read.emit('get', srcList); });
.exec(function(err,order){ // console.log(order) ep.emit('order',order) })
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); }));
.exec(function(err,details){ // console.log(details) ep.emit('details',details) })
_cate.save(function(err, cate) { ep.emit('move'); })
UserDao.getUserById(users[a]._id,function(err,user){ //时间处理 user.friend_create_at = Util.format_date(user.create_at, true); proxy.emit('users',user); });
.end(function (err,res) { console.log('fetch' + topicUrl + 'successful'); ep.emit('topic_html',[topicUrl, res.text]); });
Post.findOne({url:postInfo.url},ep.done(function(post){ if(post){ return ep.emit("got_author"); } ep.emit("fetch_author"); }))
Message.getTotal(userId, ep.done(function(total) { ep.emit('total', total); }));
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); }); }); };