了不起的node.js读书笔记之例程分析


Posted in Javascript onDecember 22, 2014

这周的nodejs学习内容为几个依赖包的使用,把书上的例子都敲了一遍。这篇就以例程为线索,复习一下一周的工作。

1.connect

  这个例程主要是使用connect依赖包,connect提供一个中间件(由函数组成,与请求、响应对象交互)的功能。书中也介绍了connect内置其他的中间件,这些中间件起到组织代码完成web功能的作用。

2.session

  使用connect进行用户会话,进行基本的登录系统。通过中间件实现了检查登录、展示表单、用户匹配、处理登出的功能。展示了中间件的强大和组织方式。

3.express-tweet

  这章学习了用express包,express基于connect。程序设计依旧简单,不过版本不同的np中,函数名会产生一些变化,比如express.createServer()在3.0后就变成了express()。使用express最大的益处就是它简洁又不失灵活。不过tweet访问不到,而改写成微博时,weibo的API访问又过于复杂,这个程序其实是没有成功跑起来的。

4.echo

  这两个例程使用的是WebSocket包,echo的功能主要就是记录消息传输的时间。Websocket的调戏方式就ws来监听(on)一个事件,在回调函数中进行处理,在html文件中也要使用js进行消息的交互。

5.cursors

  本例学习到了广播,这个功能通过自己写的一个broadcast函数来进行处理。在确保光标元素是否存在时,是通过DOM的ID查找来完成的。

6.chat

  这一章可以说是这本书的重头戏,因为Socket.IO包就是作者开发的。它与WS的不同在与它的消息传递是基于传输而不全是WS。这个例程时先实现聊天功能,再实现广播歌曲(DJ)功能。过程中也没有遇到什么大问题。一个流程就是socket.emit一个事件,另一端socket就监听到这个事件,并对其进行处理。

7.总结

  这周效率还是蛮不错的,遇到的问题依然放在了evernote上。问题以前也出现过就是localhost与127.0.0.1的区别。这周在调试js过程中习得了一个函数,可以让js想php一样dump一个对象来。现在贴在下面分享。

 function dump(arr,level) {

     var dumped_text = "";

     if(!level) level = 0;

     

     //The padding given at the beginning of the line.

     var level_padding = "";

     for(var j=0;j<level+1;j++) level_padding += "    ";

     

     if(typeof(arr) == 'object') { //Array/Hashes/Objects 

         for(var item in arr) {

             var value = arr[item];

             

             if(typeof(value) == 'object') { //If it is an array,

                 dumped_text += level_padding + "'" + item + "' ...\n";

                 dumped_text += dump(value,level+1);

             } else {

                 dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";

             }

         }

     } else { //Stings/Chars/Numbers etc.

         dumped_text = "===>"+arr+"<===("+typeof(arr)+")";

     }

     return dumped_text;

 }

下一周开始学mongoDB,node的学习主要还是通过学习例程、阅读源码API来提高。毕竟node的优点就是网络上大片的np。

Javascript 相关文章推荐
基于jquery的3d效果实现代码
Mar 23 Javascript
提高jQuery性能的十个诀窍
Nov 14 Javascript
jquery $.trim()方法使用介绍
May 21 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
Jun 11 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
smartupload实现文件上传时获取表单数据(推荐)
Dec 12 Javascript
jQuery图片加载失败替换默认图片方法汇总
Nov 29 jQuery
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
Vue2.0学习系列之项目上线的方法步骤(图文)
Sep 25 Javascript
js实现简单的日历显示效果函数示例
Nov 25 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
Aug 04 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 #Javascript
了不起的node.js读书笔记之node.js中的特性
Dec 22 #Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 #Javascript
IE8中动态创建script标签onload无效的解决方法
Dec 22 #Javascript
javascript的日期对象、数组对象、二维数组使用说明
Dec 22 #Javascript
javascript中的遍历for in 以及with的用法
Dec 22 #Javascript
Jquery实现图片预加载与延时加载的方法
Dec 22 #Javascript
You might like
无需数据库在线投票调查php代码
2016/07/20 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
javascript中new关键字详解
2015/12/14 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
python编写简单爬虫资料汇总
2016/03/22 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
python获取代码运行时间的实例代码
2018/06/11 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
Python中如何添加自定义模块
2020/06/09 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
个人函授自我鉴定
2014/03/25 职场文书
法制宣传教育方案
2014/05/09 职场文书
毕业生实习证明
2014/09/19 职场文书
营销与策划实训报告
2014/11/05 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
淮海战役观后感
2015/06/11 职场文书
工资证明格式模板
2015/06/12 职场文书
春节慰问简报
2015/07/21 职场文书
2016十一国庆节感言
2015/12/09 职场文书
同学会演讲稿
2019/04/02 职场文书
Java 超详细讲解hashCode方法
2022/04/07 Java/Android