了不起的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 相关文章推荐
鼠标图片振动代码
Jul 06 Javascript
JavaScript中null与undefined分析
Jul 25 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
JS动态添加Table的TR,TD实现方法
Jan 28 Javascript
javascript记住用户名和登录密码(两种方式)
Aug 04 Javascript
3种js实现string的substring方法
Nov 09 Javascript
快速学习jQuery插件 Cookie插件使用方法
Dec 01 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
Apr 22 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
May 02 Javascript
Vue项目查看当前使用的elementUI版本的方法
Sep 27 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实现从上传文件创建缩略图的方法
2015/04/02 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
node.js实现端口转发
2016/04/14 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
Vue 过滤器filters及基本用法
2017/12/26 Javascript
Mac下安装vue
2018/04/11 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
用python实现面向对像的ASP程序实例
2014/11/10 Python
python清理子进程机制剖析
2017/11/23 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
通过cmd进入python的实例操作
2019/06/26 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
奇怪的鱼:Weird Fish
2018/03/18 全球购物
化学相关工作求职信
2013/10/02 职场文书
会计实习期自我鉴定
2013/10/06 职场文书
最新个人职业生涯规划书
2014/01/22 职场文书
酒店员工检讨书
2014/02/18 职场文书
学生干部培训方案
2014/06/12 职场文书
2016高考感言
2015/08/01 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python