了不起的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拥有类似Lambda表达式编程能力的方法
Sep 12 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
Jan 15 Javascript
JS字符串截取函数实例
Dec 27 Javascript
js用typeof方法判断undefined类型
Jul 15 Javascript
如何利用JSHint减少JavaScript的错误
Aug 23 Javascript
JS实现禁止鼠标右键的功能
Oct 15 Javascript
关于Vue实现组件信息的缓存问题
Aug 23 Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 Javascript
JavaScript 判断对象中是否有某属性的常用方法
Jun 14 Javascript
Javascript删除数组里的某个元素
Feb 28 Javascript
vue设计一个倒计时秒杀的组件详解
Apr 06 Javascript
js canvas实现星空连线背景特效
Nov 01 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编程开发“虚拟域名”系统
2006/10/09 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
PHP简单日历实现方法
2016/07/20 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
javascript的this关键字详解
2019/05/20 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
python zip文件 压缩
2008/12/24 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python之os操作方法(详解)
2017/06/15 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
python实现从ftp服务器下载文件
2020/03/03 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
python中selenium库的基本使用详解
2020/07/31 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
拾金不昧的表扬信
2014/01/16 职场文书
物业管理工作方案
2014/05/10 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书