Node.js 那些事儿
  作者:刘喜东
Content
1.   What
2.   Why
3.   How
4.   Where
5.   Who




             2
Content
1.   What
2.   Why
3.   How
4.   Where
5.   Who




             3
是什么?
•




    学名: Node.js
•




    辟谣:核心由 C/C++ 编写
•




    本质:一个 JavaScript 虚拟机
•




    托管: https://github.com/joyent/node
•




    概括: evented I/O for v8 javascript




                                         4
Content
1.   What
2.   Why
3.   How
4.   Where
5.   Who




             5
Apache+mod_php




                 6
Node.js




          7
Node.js VS
Apache+mod_php
•




    独立完成 VS 细化分工
•




    面向事件编程 VS 面向对象编程
•




    英雄主义 VS 人海战术
•




    劳模 VS 普通青年




                       8
Node.js 的优点
学习成本低
内存占用少
C PU 利用率高




              9
Content
1.   What
2.   Why
3.   How
4.   Where
5.   Who




             10
离了模块就活不了
•




    npm
•




    CommonJS
•




    核心模块概览




               11
npm
•




    Node Package Manager
•




    pear 、 gem 、 apt
•




    curl http://npmjs.org/install.sh | sudo sh
CommonJS

•




    它是一套 API 。
•




    它要为 Web 服务器 , 桌面和命令行应用创
    建一个完整的 JavaScript 生态系统,不仅
    仅只为浏览器。
•




    它定义了一组标准和规范,如模块、包、
    文件系统等。
核心模块
•




    http/https
•




    url
•




    os
•




    fs
•




    assert
•




    ... ...
代码示例
•




    功能:根据坐标获取小区列表的 API 。
•




    方式: POST
•




    返回: JSON
•




    测试: ab -c 100 -n 1000
•




    网址: https://github.com/liuxd/MyNodeJS
A p a c he +mo d _p hp
No d e . js
Content
1.   What
2.   Why
3.   How
4.   Where
5.   Who




             18
用武之地
•




    IO 频繁
•




    CPU 利用率低
•




    内存导致并发瓶颈




               19
应用场景
•




    聊天系统
•




    投票
•




    点击量统计
•




    秒杀
•




    业务耦合较低的 api
•




    ... ...



                  20
Content
1.   What
2.   Why
3.   How
4.   Where
5.   Who




             21
谁在用?
•




    Instagram—— 基于 Node.js 开发了
    node2dm
•




    LinkedIn—— 移动应用业务
•




    Github——NodeLoad, 存档下载服务器
•




    淘宝——用 Node.js 实现 MyFOX
•




    微软、雅虎、 ebay



                                 22
By the way
•




    NAE——Node App Engine
•




    http://registry.npmjs.vitecho.com
•




    npm config set registry “XXOO”
•




    PHP 版的 Node.js——React




                                        23
Thank you very very much.

课题二:Node.js那些事儿

  • 1.
    Node.js 那些事儿 作者:刘喜东
  • 2.
    Content 1. What 2. Why 3. How 4. Where 5. Who 2
  • 3.
    Content 1. What 2. Why 3. How 4. Where 5. Who 3
  • 4.
    是什么? • 学名: Node.js • 辟谣:核心由 C/C++ 编写 • 本质:一个 JavaScript 虚拟机 • 托管: https://github.com/joyent/node • 概括: evented I/O for v8 javascript 4
  • 5.
    Content 1. What 2. Why 3. How 4. Where 5. Who 5
  • 6.
  • 7.
  • 8.
    Node.js VS Apache+mod_php • 独立完成 VS 细化分工 • 面向事件编程 VS 面向对象编程 • 英雄主义 VS 人海战术 • 劳模 VS 普通青年 8
  • 9.
  • 10.
    Content 1. What 2. Why 3. How 4. Where 5. Who 10
  • 11.
    离了模块就活不了 • npm • CommonJS • 核心模块概览 11
  • 12.
    npm • Node Package Manager • pear 、 gem 、 apt • curl http://npmjs.org/install.sh | sudo sh
  • 13.
    CommonJS • 它是一套 API 。 • 它要为 Web 服务器 , 桌面和命令行应用创 建一个完整的 JavaScript 生态系统,不仅 仅只为浏览器。 • 它定义了一组标准和规范,如模块、包、 文件系统等。
  • 14.
    核心模块 • http/https • url • os • fs • assert • ... ...
  • 15.
    代码示例 • 功能:根据坐标获取小区列表的 API 。 • 方式: POST • 返回: JSON • 测试: ab -c 100 -n 1000 • 网址: https://github.com/liuxd/MyNodeJS
  • 16.
    A p ac he +mo d _p hp
  • 17.
    No d e. js
  • 18.
    Content 1. What 2. Why 3. How 4. Where 5. Who 18
  • 19.
    用武之地 • IO 频繁 • CPU 利用率低 • 内存导致并发瓶颈 19
  • 20.
    应用场景 • 聊天系统 • 投票 • 点击量统计 • 秒杀 • 业务耦合较低的 api • ... ... 20
  • 21.
    Content 1. What 2. Why 3. How 4. Where 5. Who 21
  • 22.
    谁在用? • Instagram—— 基于 Node.js 开发了 node2dm • LinkedIn—— 移动应用业务 • Github——NodeLoad, 存档下载服务器 • 淘宝——用 Node.js 实现 MyFOX • 微软、雅虎、 ebay 22
  • 23.
    By the way • NAE——Node App Engine • http://registry.npmjs.vitecho.com • npm config set registry “XXOO” • PHP 版的 Node.js——React 23
  • 24.
    Thank you veryvery much.