了不起的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 select下拉框操作的一些说明
Apr 02 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
Oct 30 Javascript
javascript字符串循环匹配实例分析
Jul 17 Javascript
详解javascript数组去重问题
Nov 06 Javascript
javascript学习小结之prototype
Dec 03 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
Apr 25 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
Jul 20 Javascript
vue项目tween方法实现返回顶部的示例代码
Mar 02 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
Jun 17 Javascript
JavaScript仿京东秒杀倒计时
Mar 17 Javascript
js实现双人五子棋小游戏
May 28 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 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
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
php常用文件操作函数汇总
2014/11/22 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
python的正则表达式re模块的常用方法
2013/03/09 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
python 命名规范知识点汇总
2020/02/14 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
法国春天百货官网:Printemps.com
2020/06/29 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
经贸日语毕业生自荐信
2013/11/03 职场文书
财政局长自荐信范文
2013/12/22 职场文书
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
工程技术员岗位职责
2015/04/11 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
电影建国大业观后感
2015/06/01 职场文书
暑期工社会实践报告
2015/07/13 职场文书