深入浅出nodejs-2014

上传人:今*** 文档编号:107837495 上传时间:2019-10-21 格式:PPT 页数:43 大小:3.79MB
返回 下载 相关 举报
深入浅出nodejs-2014_第1页
第1页 / 共43页
深入浅出nodejs-2014_第2页
第2页 / 共43页
深入浅出nodejs-2014_第3页
第3页 / 共43页
深入浅出nodejs-2014_第4页
第4页 / 共43页
深入浅出nodejs-2014_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《深入浅出nodejs-2014》由会员分享,可在线阅读,更多相关《深入浅出nodejs-2014(43页珍藏版)》请在金锄头文库上搜索。

1、深入浅出NodeJs,演讲:tomieric,翼虎网 前端工程师,2013年5月13日,目录,1,2,3,4,NodeJS 简介,核心模块,NodeJS入门基础,web开发简信群聊案例分析,01 / nodejs基础,javascript javascript由于ECMAScript、DOM、BOM组成(Mozlia指Core Javascript 和 Client Javascript组成)。 nodejs是javascript? nodejs是基于ECMAScript或Core Javascript,借助于chorme 的V8引擎,使用C+编写扩展。 与其编程语言区别? nodejs不是一

2、种独立语言。他是居于javascript语言基础开发的服务器端语言,它可以像php它们一样 web编程,它是可以可以跳过apache,nginx等http服务器直接面向前端开发。,什么是nodejs?,01 / nodejs基础,具有复杂逻辑的网站; 基于社交网络的大规模 Web 应用; Web Socket 服务器; TCP/UDP 套接字应用程序; 命令行工具; 交互式终端程序; 带有图形用户界面的本地应用程序; 单元测试工具; 客户端 JavaScript 编译器。,nodejs能做什么?,01 / nodejs基础,异步和同步差别 / 同步 var str = 开始了; functio

3、n loop() var i = 100000; if(i = 0) console.log(哈哈,我先打印了str:+str); while(i 0) i-; loop(); console.log(我想打印str:+str+需要等待loop执行完);,异步式 I/O 与事件驱动,01 / nodejs基础,异步和同步差别 / 异步 var str = 开始了; $.get(url, function(data) console.log(我离开了一下回来打印str的:+str+,顺便带来朋友data:+data); ); console.log(我是先输出str的+str);,异步式 I/O

4、 与事件驱动,01 / nodejs基础,异步式 I / O Node.js 使用的是单线程模型,对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送到事件队列,等待程序进程进行处理。,异步式 I/O 与事件驱动,db.query(SELECT * from some_table, function(res) res.output(); );,01 / nodejs基础,事件驱动 由一个事件收集器、一个事件发送器和一个事件处理器组成。事件收集器专门负

5、责收集所有事件,包括来自用户的(如鼠标、键盘事件等)、来自硬件的(如时钟事件等)和来自软件的(如操作系统、应用程序本身等)。事件发送器负责将收集器收集到的事件分发到目标对象中。,异步式 I/O 与事件驱动,01 / nodejs基础,遵循commonJS标准规范,commonJS,模块(module),包(packages),系统(system),二进制(binary),控制台(console),编码(encodings),文件系统(filesystems),套接字(socket),单元测试(unit testing),.,01 / nodejs基础,nodejs性能,01 / nodejs基

6、础,Snoopyxd 详细对比了 Node.js 与 PHP+Nginx 组合,结果显示在3000并发连接、30秒的 测试下,输出“hello world”请求: PHP 每秒响应请求数为3624,平均每个请求响应时间为0.39秒;Node.js 每秒响应请求数为7677,平均每个请求响应时间为0.13秒 而同样的测试,对MySQL查询操作: PHP 每秒响应请求数为1293,平均每个请求响应时间为0.82 Node.js 每秒响应请求数为2999,平均每个请求响应时间为0.33秒。,nodejs性能,资料:nodejs开发指南 第1.4.2章,01 / nodejs基础,nodejs性能,n

7、odejs在朋友网的实践 ,02 / nodejs入门,nodejs安装,下载安装nodejs http:/nodejs.org/download/,02 / nodejs入门,nodejs安装,设置系统环境变量 将node.exe所在目录加入系统环境变量PATH中,便于在任意位置执行node应用 NPM 打包管理器 新版nodejs已经默认安装了npm,不需另外安装。 测试安装环境 windows下面按window+R, 输入cmd,调用命令窗口。 输入 node -v 输入 npm -v,02 / nodejs入门,nodejs使用,第一个程序 打印 hello world 在“G:nod

8、ejsdemo”下新建一个hello.js文件 输入,02 / nodejs入门,入门基础,创建HTTP服务器,02 / nodejs入门,异步式 I/O (非阻塞 I / O),02 / nodejs入门,回调函数,02 / nodejs入门,事件式编程,03 / 核心模块,全局变量,nodejs的全局变量是global,而不是window process 进程对象 console.log 控制台输出,03 / 核心模块,内置模块,Util 工具包 Util.inherits(Constructor, SuperConstructor) 对象原型Util.inspect(object, sh

9、owHidden, depth, color) 对象转换成字符串 Util.isArray() Util.isRegExp() Util.isDate() Utils.isError(),03 / 核心模块,内置模块,event 事件驱动 EventEmitter.on(event, listener) 监听事件 EventEmitter.emit(event, arg1,.) 发射(触发)事件 EventEmitter.once(event, listener); 只绑定一次事件 EventRemoveListener(event, listener) 解除某个监听事件 EventRemov

10、eAllListener(event) 移除所有监听,03 / 核心模块,内置模块,fs 文件系统 fs.readFile(filename,encode,callback(err, data) 异步读取文件 fs.readFileSync(filename,encode,callback(err, data) 同步读取文件 fs.open(path, flags, mode, callback(err, fd) fs.read(.),03 / 核心模块,内置模块,HTTP 服务器与客户端 http.Server 事件 http.ServerRequest http.ServerRespons

11、e,03 / 核心模块,模块与包,创建模块,03 / 核心模块,模块与包,创建包 package.json 必须在包的顶层目录下; 二进制文件应该在 bin 目录下; JavaScript 代码应该在 lib 目录下; 文档应该在 doc 目录下; 单元测试应该在 test 目录下。,03 / web应用,Nodejs建站案例,03 / web开发简信群聊案例分析,Express框架(mvc),web application framework for node,03 / web开发简信群聊案例分析,Express框架(mvc),创建一个Express框架app,03 / web开发简信群聊案

12、例分析,Express框架(mvc),创建成功,安装所需包,03 / web开发简信群聊案例分析,Express框架(mvc),导入需要包,03 / web开发简信群聊案例分析,ejs 模板引擎,JS模板引擎 jquery Templ, artTemplate, Juicer, jade等 与jade模板区别,03 / web开发简信群聊案例分析,mongoDB 非关系数据库,MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是

13、他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 8天学通mongoDB ,03 / web开发简信群聊案例分析,express搭建微博系统,创建包 package.json 必须在包的顶层目录下; 二进制文件应该在 bin 目录下; JavaScript 代码应该在 lib 目录下; 文档应该在 doc 目录下; 单元测试应该在 test 目录下。,03 / web开发简信群聊案例分析,简信群聊案例分析,express + socket.io+mongoDB What is Socket.IO? Soc

14、ket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. Its care-free realtime 100% in JavaScript. Socket.IO 旨在任何浏览器和移动终端中创建实时的app应用,弱化不同的传输机制达到统一,它是一种快速的实时的JavaScript应用。,03 / web开发简信群聊案例分析,简信群聊案例分析,03 / web开发简信群聊案例分析,简信群聊案例分析,03 / web开发简信群聊案例分析,简信群聊案例分析,03 / web开发简信群聊案例分析,简信群聊案例分析,03 / web开发简信群聊案例分析,简信群聊案例分析,03 / web开发简信群聊案例分析,简信群聊案例分析,参考资料,nodejs权威开发指南 nodejs中文手册 express中文手册http:/expressjs.jser.us/api.html jade中文手册http:/expressjs.jser.us/jade.html nodejs中文社区http:/cnodejs.org/,谢谢聆听,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号