深入浅出NodeJs_2014.ppt_第1页
深入浅出NodeJs_2014.ppt_第2页
深入浅出NodeJs_2014.ppt_第3页
深入浅出NodeJs_2014.ppt_第4页
深入浅出NodeJs_2014.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

深入浅出NodeJs,演讲:tomieric,翼虎网前端工程师,2013年5月13日,目录,1,2,3,4,NodeJS简介,核心模块,NodeJS入门基础,web开发简信群聊案例分析,01/nodejs基础,javascriptjavascript由于ECMAScript、DOM、BOM组成(Mozlia指CoreJavascript和ClientJavascript组成)。nodejs是javascript?nodejs是基于ECMAScript或CoreJavascript,借助于chorme的V8引擎,使用C+编写扩展。与其编程语言区别?nodejs不是一种独立语言。他是居于javascript语言基础开发的服务器端语言,它可以像php它们一样web编程,它是可以可以跳过apache,nginx等http服务器直接面向前端开发。,什么是nodejs?,01/nodejs基础,具有复杂逻辑的网站;基于社交网络的大规模Web应用;WebSocket服务器;TCP/UDP套接字应用程序;命令行工具;交互式终端程序;带有图形用户界面的本地应用程序;单元测试工具;客户端JavaScript编译器。,nodejs能做什么?,01/nodejs基础,异步和同步差别/同步varstr=开始了;functionloop()vari=100000;if(i=0)console.log(哈哈,我先打印了str:+str);while(i0)i-;loop();console.log(我想打印str:+str+需要等待loop执行完);,异步式I/O与事件驱动,01/nodejs基础,异步和同步差别/异步varstr=开始了;$.get(url,function(data)console.log(我离开了一下回来打印str的:+str+,顺便带来朋友data:+data););console.log(我是先输出str的+str);,异步式I/O与事件驱动,01/nodejs基础,异步式I/ONode.js使用的是单线程模型,对于所有I/O都采用异步式的请求方式,避免了频繁的上下文切换。Node.js在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式I/O请求完成后会被推送到事件队列,等待程序进程进行处理。,异步式I/O与事件驱动,db.query(SELECT*fromsome_table,function(res)res.output(););,01/nodejs基础,事件驱动由一个事件收集器、一个事件发送器和一个事件处理器组成。事件收集器专门负责收集所有事件,包括来自用户的(如鼠标、键盘事件等)、来自硬件的(如时钟事件等)和来自软件的(如操作系统、应用程序本身等)。事件发送器负责将收集器收集到的事件分发到目标对象中。,异步式I/O与事件驱动,01/nodejs基础,遵循commonJS标准规范,commonJS,模块(module),包(packages),系统(system),二进制(binary),控制台(console),编码(encodings),文件系统(filesystems),套接字(socket),单元测试(unittesting),.,01/nodejs基础,nodejs性能,01/nodejs基础,Snoopyxd详细对比了Node.js与PHP+Nginx组合,结果显示在3000并发连接、30秒的测试下,输出“helloworld”请求:PHP每秒响应请求数为3624,平均每个请求响应时间为0.39秒;Node.js每秒响应请求数为7677,平均每个请求响应时间为0.13秒而同样的测试,对MySQL查询操作:PHP每秒响应请求数为1293,平均每个请求响应时间为0.82Node.js每秒响应请求数为2999,平均每个请求响应时间为0.33秒。,nodejs性能,资料:nodejs开发指南第1.4.2章,01/nodejs基础,nodejs性能,nodejs在朋友网的实践,02/nodejs入门,nodejs安装,下载安装nodejs/download/,02/nodejs入门,nodejs安装,设置系统环境变量将node.exe所在目录加入系统环境变量PATH中,便于在任意位置执行node应用NPM打包管理器新版nodejs已经默认安装了npm,不需另外安装。测试安装环境windows下面按window+R,输入cmd,调用命令窗口。输入node-v输入npm-v,02/nodejs入门,nodejs使用,第一个程序打印helloworld在“G:nodejsdemo”下新建一个hello.js文件输入,02/nodejs入门,入门基础,创建HTTP服务器,02/nodejs入门,异步式I/O(非阻塞I/O),02/nodejs入门,回调函数,02/nodejs入门,事件式编程,03/核心模块,全局变量,nodejs的全局变量是global,而不是windowprocess进程对象console.log控制台输出,03/核心模块,内置模块,Util工具包Util.inherits(Constructor,SuperConstructor)对象原型Util.inspect(object,showHidden,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)解除某个监听事件EventRemoveAllListener(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.ServerRequesthttp.ServerResponse,03/核心模块,模块与包,创建模块,03/核心模块,模块与包,创建包package.json必须在包的顶层目录下;二进制文件应该在bin目录下;JavaScript代码应该在lib目录下;文档应该在doc目录下;单元测试应该在test目录下。,03/web应用,Nodejs建站案例,03/web开发简信群聊案例分析,Express框架(mvc),webapplicationframeworkfornode,03/web开发简信群聊案例分析,Express框架(mvc),创建一个Express框架app,03/web开发简信群聊案例分析,Express框架(mvc),创建成功,安装所需包,03/web开发简信群聊案例分析,Express框架(mvc),导入需要包,03/web开发简信群聊案例分析,ejs模板引擎,JS模板引擎jqueryTempl,artTemplate,Juicer,jade等与jade模板区别,03/web开发简信群聊案例分析,mongoDB非关系数据库,MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。8天学通mongoDB,03/web开发简信群聊案例分析,express搭建微博系统,创建包package.json必须在包的顶层目录下;二进制文件应该在bin目录下;JavaScript代码应该在lib目录下;文档应该在doc目录下;单元测试应该在test目录下。,03/web开发简信群聊案例分析,简信群聊案例分析,express+socket.io+mongoDBWhatisSocket.IO?Socket.IOaimstomakerealtimeappspossibleineverybrowserandmobiledevice,blurringthedifferencesbetweenthedifferenttransportmechanisms.Itscare-freerealtime100%inJavaScript.Socket.IO旨在任何浏览器和移动终端中创建实时的app应用,弱化不同的传输机制达到统一,它是一种快速的实时的Ja

温馨提示

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

评论

0/150

提交评论