码迷,mamicode.com
首页 > Web开发 > 详细

nodejs学习一

时间:2016-04-16 21:25:58      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

Node特点

  1.异步I/O

  2.事件,回调函数

  3.单线程

 

编程思想的转变:

  1.同步编程 ------->  异步编程

  2.单线程编程

 

Node应用场景

  技术选型极为重要,为不同的场景选择合适的技术

  1.I/O密集型

    node利用事件循环的处理能力,而不是启动每一个线程为每一个请求服务

  2.cpu密集型

    

模块机制

  commonJS规范

  模块的引入,导出,标识符

    require,module,exports

 

  模块加载的过程:

    路径解析,定位文件,编译等

 

Node模块种类

  1.Node核心模块

  2.第三方文件模块

  第三方模块中,模块之间散列在各地,相互之间不能直接引用

  在模块之外,包和NPM是将模块联系起来的一种机制

 

commonJS 包的规范

  包是在模块基础上进一步组织javascript代码

  commonJS包规范是理论,NPM则是实践

  NPM帮助第三方模块完成发布,安装,依赖等

  借助NPM,Node与第三方模块之间形成了很好的生态系统

 

NPM常用命令

  如果将个人的包上传到npm资源仓库服务器中,需要npm中注册账户,创建仓库

 

异步I/O

  为何node要使用异步I/O?

    1.用户体验

      前端中javascript与UI渲染在同一个进程中,同步情况下,响应糟糕

      异步I/O可以消除前端UI阻塞

    2.资源分配

      单线程缺点:容易阻塞I/O,无法利用多核cpu资源

      多线程缺点:容易造成死锁,状态同步

      Node给出中间方案:

          利用单线程,远离多线程的死锁,状态同步

          利用异步I/O,远离单线程的阻塞,更好的利用cpu

          提供类似前端web workers的子线程高效利用多核cpu

 

Node的异步I/O

  完成整个异步I/O环节的有:事件循环,观察者,请求对象

 

Node异步编程

  

 

 

 

 

 

        

 

nodejs学习一

标签:

原文地址:http://www.cnblogs.com/RocketV2/p/5399114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!