深入浅出NodeJs-2014_第1页
深入浅出NodeJs-2014_第2页
深入浅出NodeJs-2014_第3页
深入浅出NodeJs-2014_第4页
深入浅出NodeJs-2014_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、0;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 与事件驱动01 / nodejs基础 异步式 I / ONode.j

4、s 使用的是单线程模型,对于所有 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基础 Snoopyxd 详细对比了 Node.js 与 PHP+Nginx 组合,结果显示在3000并发连接、30秒的

6、测试下,输出“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性能nodejs在朋友网的实践 http:/ / nodejs入门nodejs安装下载安装nodejs /

7、download/02 / nodejs入门nodejs安装设置系统环境变量 将node.exe所在目录加入系统环境变量PATH中,便于在任意位置执行node应用NPM 打包管理器 新版nodejs已经默认安装了npm,不需另外安装。测试安装环境windows下面按window+R, 输入cmd,调用命令窗口。 输入 node -v 输入 npm -v02 / nodejs入门nodejs使用 第一个程序 打印 hello world 在“G:nodejsdemo”下新建一个hello.js文件 输入02 / nodejs入门入门基础 创建HTTP服务器 02 / nodejs入门异步式 I/

8、O (非阻塞 I / O) 02 / nodejs入门回调函数 02 / nodejs入门事件式编程 03 / 核心模块全局变量 nodejs的全局变量是global,而不是window process 进程对象 console.log 控制台输出 03 / 核心模块内置模块 Util 工具包Util.inherits(Constructor, SuperConstructor) 对象原型Util.inspect(object, showHidden, depth, color) 对象转换成字符串Util.isArray()Util.isRegExp()Util.isDate()Utils.i

9、sError()03 / 核心模块内置模块 event 事件驱动EventEmitter.on(event, listener) 监听事件EventEmitter.emit(event, arg1,.) 发射(触发)事件EventEmitter.once(event, listener); 只绑定一次事件EventRemoveListener(event, listener) 解除某个监听事件EventRemoveAllListener(event) 移除所有监听03 / 核心模块内置模块 fs 文件系统fs.readFile(filename,encode,callback(err, dat

10、a) 异步读取文件fs.readFileSync(filename,encode,callback(err, data) 同步读取文件fs.open(path, flags, mode, callback(err, fd)fs.read(.)03 / 核心模块内置模块 HTTP 服务器与客户端http.Server 事件http.ServerRequesthttp.ServerResponse03 / 核心模块模块与包 创建模块03 / 核心模块模块与包 创建包package.json 必须在包的顶层目录下; 二进制文件应该在 bin 目录下;JavaScript 代码应该在 lib 目录下;

11、文档应该在 doc 目录下;单元测试应该在 test 目录下。03 / web应用Nodejs建站案例03 / web开发简信群聊案例分析Express框架(mvc)web application framework for node03 / web开发简信群聊案例分析Express框架(mvc)创建一个Express框架app03 / web开发简信群聊案例分析Express框架(mvc)创建成功,安装所需包03 / web开发简信群聊案例分析Express框架(mvc)导入需要包03 / web开发简信群聊案例分析ejs 模板引擎 JS模板引擎jquery Templ, artTempla

12、te, Juicer, jade等 与jade模板区别03 / web开发简信群聊案例分析mongoDB 非关系数据库MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 8天学通mongoDB http:/ / web开发简信群聊案例分析express搭建微博系统 创建包package.js

13、on 必须在包的顶层目录下; 二进制文件应该在 bin 目录下;JavaScript 代码应该在 lib 目录下;文档应该在 doc 目录下;单元测试应该在 test 目录下。03 / web开发简信群聊案例分析简信群聊案例分析express + socket.io+mongoDBWhat is Socket.IO? Socket.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应用,弱化不同的传输机制达到统一,它是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论