了不起的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 相关文章推荐
JavaScript中的Location地址对象
Jan 16 Javascript
js QQ客服悬浮效果实现代码
Dec 12 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
Jan 19 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
Sep 02 Javascript
jQuery中的select操作详解
Nov 29 Javascript
详解基于webpack2.x的vue2.x的多页面站点
Aug 21 Javascript
详解react-native-fs插件的使用以及遇到的坑
Sep 12 Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
Vue $emit $refs子父组件间方法的调用实例
Sep 12 Javascript
highCharts提示框中显示当前时间的方法
Jan 18 Javascript
node.js事件轮询机制原理知识点
Dec 22 Javascript
js实现简单音乐播放器
Jun 30 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
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
西班牙手机之家:Phone House
2018/10/18 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
Internet体系结构
2014/12/21 面试题
学风建设演讲稿
2014/09/12 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
学校师德师风整改方案
2014/10/28 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
党员年度个人总结
2015/02/14 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
详解运行Python的神器Jupyter Notebook
2021/06/03 Python