Node.js web开发基础教程_Node.js新手快速入门
2017-07-24 13:19:10  By: shinyuu

Node.js 是一个基于 Chrome JavaScript 运?时建立的平台, 用于方便地搭建响应速度快、易于扩展的?络应?、Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和?效、?常适合在分布式设备上运行的数据密集型的实时应用、V8 引擎执行 Javascript 的速度非常快、性能非常好

Node.js快速入门


Node 是一个 Javascript 运行环境(runtime)、 实际上它是对 Google V8 引擎进行了封装、 Node 对一些特殊用例进行了优化, 提供了替代的 API、使得 V8 在非浏览器环境下运行得更好

1、Nodejs是一个基于Chrome V8 引擎的JS运行环境、也就是让javascript运行在服务器(server)端

2、NodeJS使用了一个事件驱动、非阻塞式的I/O模型、使得其轻量又高效、

3、Nodejs包管理器npm是全球最大的开源生态系统、

4、Nodejs是服务端的js平台、

5、npm grunt express 等强大的代码与项目管理应用在nodeJS上、


关于NodeJS与传统服务器处理平台(Apache)的区别

Apache的多线程高并发模式

Apache是一种多线程处理并发、但是在一些大型的web应用上也会发生阻塞


线程和进程

线程是可以独立运行的最小的CPU单位

线程可以在同一个进程中并发运行、并共享该进程下的内存地址空间

进程可以支持多个线程、它们看似同时执行、但是相互之间并不同步

一个进程中的多个线程共享相同的内存地址空间、意味着可以访问相同的变量和对象、并且从同一堆中分配对象

这样让线程之间共享信息变得容易、但是也要确保他们不会妨碍同一进程中想的其他线程


NodeJS的异步I/O原理

用数据库的调用举例:

Apache、执行到第一个线程的时候会等待query返回结果、一方面会导致线程长期阻塞等待、另一方面会为了新请求不断增加线程、会浪费大量的资源、同时线程增加会占用大量的CPU时间来处理内存上下文切换

NodeJS是异步单线程的、应用的是异步回调的方法、也就是异步的I/O

解释:当进程执行的时候、不会等待结果的返回、而是直接执行下面的语句、直到进入事件循环、当数据库执行返回结果的时候会将事件发送到事件队列、等线程进入事件循环之后才会调用之前的回调函数

也就是nodejs的工作原理其实就是事件循环、每一条nodejs的逻辑都是写在回调函数里面的、而回调函数都是返回之后才异步执行的、NodeJS也会发生阻塞、但是阻塞发生在自己的单个线程当中、不是发生在后续回调的流程当中


与php区别

用node来做网站开应用的是分块加载的模式、不用像php那样把所有的数据一次性加载到客户端、NodeJS相比于php和Apache开的新线程来讲、节省了CPU内存和上下文切换的时间


NodeJS的应用场景

NodeJs适合应用在具有大量的细小的http请求环境下、例如web的即时聊天程序、或者上万人同时在线的游戏服务器、不用考虑http请求次数过多的问题


以上是我对node.js一些初步了解、希望这些可以让更多的朋友了解node.js

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新资讯、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


博文评论

  • 该博文还没有评论、赶快抢沙发吧...
DD记账
top
+