关于关注和取消关注的nodejs写法
本例子的关注和取消关注,是通过ajax的方法实现的;nodejs后台写好api接口;响应前台的ajax
先看ajax的代码实现:
// 用户关注标签
function subscribe(uid, tid) {
if(!uid || uid.length === 0) window.location.href = '/signin'; var api = "/users/" + uid + "/tags/" + tid; $.post(api, function(data) {
var effect = 'animated bounceIn';
var btn = $("#subscribe-btn");
btn.addClass('active').html('已关注');
btn.addClass(effect);
btn.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
btn.removeClass(effect);
btn.attr('onclick', "unsubscribe('" + uid + "', '" + tid + "');");
});
});
} // 用户取消关注标签
function unsubscribe(uid, tid) {
var api = "/users/" + uid + "/tags/" + tid;
$.delete(api, function(data) {
var effect = 'animated bounceIn';
var btn = $("#subscribe-btn");
btn.removeClass('active').html("<span class='fa fa-plus'></span> 订阅");
btn.addClass(effect);
btn.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
btn.removeClass(effect);
btn.attr('onclick', "subscribe('" + uid + "', '" + tid + "');");
});
});
}
比较有技巧的地方是,在关注的时候发生了两件事:
1、向后台发送数据;
2、添加动画特效,
3、动画特效完成后回调,修改a标签的onclick属性,使其再次被点击时触发 取消关注 事件;
需要注意的是,关注和取消关注是通过a标签的onclick属性触发javascript函数的,行间事件;
还有一种是在href中触发;
后台api代码如下:
/* 用户添加关注标签 */
router.post('/users/:id/tags/:tid', function(req, res) {
thenjs.parallel([
function(cb) {
User.findById(req.params.id).exec(function(err, me) { cb(err, me); });
},
function(cb) {
Tag.findById(req.params.tid).select('id').exec(function(err, tag) { cb(err, tag); });
}
]).then(function(error, results) {
var me = results[0];
var tag = results[1]; if(me && tag) {
if(!me.tags) me.tags = [];
me.tags.push(tag.id);
me.tags = _.unique(me.tags, function(t) { return t.id; });
me.save(function(err) {
res.json({error:err, tag: tag});
});
} else {
res.json({error:"not found user or tag"});
}
});
}); /* 用户取消关注标签 */
router.delete('/users/:id/tags/:tid', function(req, res) {
User.findById(req.params.id).exec(function(err, me) {
if(me) {
me.tags = _.remove(me.tags, function(t) { return t.id == req.params.tid});
me.save(function(err) {
res.json({error:err});
})
} else {
res.json({error:"not found user or tag"});
}
});
});
此段代码中用到了then.js;
并且好像有delete方法,$.delete是jquery ajax方法吗;
暂时搁置;去谷歌
找到了一篇文章:这篇文章提到了一句
http://www.cnblogs.com/tylerdonet/p/3520862.html
关于关注和取消关注的nodejs写法的更多相关文章
- python Sina微博自动转发带抽奖字样的微博,添加关注,取消关注
项目地址:https://github.com/chengshuyi/SinaWeibo 具有的功能 转发带抽奖字样的微博并可以@相应数量的好友 提取关注并添加关注 取消关注 获取粉丝列表
- jQuery-ajax: 取消关注|关注
ylbtech-jQuery-ajax: 取消关注|关注 1.A,jQuery-效果图返回顶部 1.B,jQuery-Source Code(源代码)返回顶部 <script src=&qu ...
- js-点击+加关注变成已关注,已关注状态时,鼠标滑动上的状态时取消关注
效果: HTML: <div class="rightBtn cur">+关注</div> CSS: .rightBtn{ width: 80px; hei ...
- h5开发微信公众号重定向到关注页面没有关注按钮 (微信你个坑)
搜索微信公众号是这样的 微信公众号重定向到关注页面没有关注按钮 如何微信公众号重定向到关注页面没有关注按钮,请看上篇笔记 无解,微信一直在封这种通过链接跳转到公众号关注页面的方法.只有放个二维码提示长 ...
- JQuery实现点击关注和取消功能
点赞,网络用语,表示“赞同”.“喜爱”. 该网络语来源于网络社区的“赞”功能.送出和收获的赞的多少.赞的给予偏好等,在某种程度能反映出你是怎样的人以及处于何种状态.点赞的背后,反映出你自己.与之对应的 ...
- juqery 给本身的class加上一个class 或也可以实现关注商品,取消关注商品
$("#goods1").on("click",".ICON-fen-LOVE",function(){ var $this = $(thi ...
- 微信公众平台开发教程Java版(六) 事件处理(菜单点击/关注/取消关注)
https://blog.csdn.net/tuposky/article/details/40589325
- 判断是否关注了微信公众号 subscribe 0=未关注 1=已关注
$appid=''; $secret=''; //微信网页授权获取openid $web_url='http://www.xxxx.com/shouquan.php'; if (!isset($_GE ...
- flask_关注者,联系人和好友
在这节我们实现的功能比较复杂,就是实现用户"关注"和"取消关注"的功能. 一个用户可以关注多个其他的用户,一个用户也可以被其他多个用户所关注,这样看的话,在数据 ...
随机推荐
- 解决function.bind()方法
这个 bind 方法只有在 ie10 版本的浏览器才得到原生支持,低于该版本的浏览器下执行时会得到一个 undefined 的错误提示. 于是只好再次上网 google 解决方案,功夫不负有心人,我们 ...
- 修复被注入的sql server
) set @delStr='<script src=http://3b3.org/c.js></script>'----这边修改被注入的js set nocount on ) ...
- Amzon MWS API开发之 请求报告
时间一晃而过又过了两周,博客园更新的速度确实有点慢,今天我要分享的是对请求报告的调用. 在文档中,相信大家也看了下面这个流程图吧? 相关流程,在文档中也有细说,我就不一一去Copy了:http://d ...
- 使用java的wsimport.exe工具生成wsdl的客户端代码
在jdk的bin目录下有一个wsimport.exe的工具,使用该工具可以根据wsdl地址生成java的客户端代码. 常用命令如下: wsimport -keep -d d:\ -s d:\src ...
- 搭讪培训班 - 名品试用 - YOKA时尚论坛 - YOKA社区
搭讪培训班 - 名品试用 - YOKA时尚论坛 - YOKA社区 搭讪培训班 发贴回复 发新话题 发布投票 搭讪培训班 1330 1 阅读 回复 跳转到指定楼层 加为好友 时尚懒洋洋 工作:无业游 ...
- nginx配置方法
nginx配置的代码: user www www; worker_processes 8; error_log /data111/logs/nginx/nginx-error.log crit; pi ...
- POJ 2420 A Star not a Tree? (计算几何-费马点)
A Star not a Tree? Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3435 Accepted: 172 ...
- Codeforces 433 C. Ryouko's Memory Note
C. Ryouko's Memory Note time limit per test 1 second memory limit per test 256 megabytes input stand ...
- 聚类算法初探(四)K-means
最近由于工作需要,对聚类算法做了一些相关的调研.现将搜集到的资料和自己对算法的一些理解整理如下,供大家参考. 另外在算法代码方面,我也做了一些实现(包括串行和并行),欢迎感兴趣的朋友探讨和交流. 第一 ...
- javascript常用的内置对象实用操作
1.indexOf() 方法 -----这个方法比较常用 返回某个指定的字符串值在字符串中首次出现的位置 使用格式:stringObject.indexOf(substring, startpos) ...