第一节 初识node

来源:互联网 发布:淘宝经营理念大全 编辑:程序博客网 时间:2024/06/06 03:53

一.认识Node

1.什么是Node

Node的名称
  • Nodejs,NodeJS,Node.js等.本课程遵循官方说法Node
  • Node是javascript语言的服务器运行环境
    所谓运行环境有两层意思:
    1.javascript语言通过Node在服务器上运行,就好像Node是javascript的虚拟机.
    2.Node提供大量的工具库,使javascript与操作系统可以互动,Node是javascript的工具库.

  • Node内部采用Google公司的V8引擎,作为JavaScript语言解释器,执行JavaScript的速度非常快,性能非常好.

2.Node的诞生

3.为什么要学习Node

  • 很火
    • Linkedln(国外的社交网站)移动版from ROR to Node,base on Joyent
    • 著名的支付公司Paypal From Java to Node.js
    • 国内的网易公司,推出的开源服务器框架Pomelo
    • 知乎的推送
    • 阿里的天猫的业务
    • UBER ,优步中国也是用node来创建的
  • 很强
    • 有很多知名度很高的开源项目都是node如:Express,PM2,CoffeeScript,socket.io
  • 应用领域广
    • RESTful API 主要的数据获取方式
    • 实时通信 服务器和浏览器的消息的推送
    • 高并发 node是单进程就可以承载大量的请求
    • I/O阻塞 JavaScript的事件和异步可以协调I/O阻塞

二.Node与javascript

1.Node为什么选择JavaScript

  • 高性能:通过事件驱动,非阻塞I/O达到高性能
  • 符合事件驱动: JavaScript天生就是事件驱动,支持异步操作
  • 没有历史包袱:JavaScript的门槛低,历史包袱少.

2.Node给JavaScript带来的意义

Node打破了JavaScript只能在浏览器中运行的局面,前后端环境统一,大大降低前后端转换所需的上下文交换代价

三.Node的特点

1.Node的特点及缺点

  • 特点
    • 环境部署简单
    • 注重约定
    • 基于事件
    • 异步编程
    • 高效与性能
    • 单线程与多进程
    • 子进程
    • 多进程
  • 缺点
    • 大量采用匿名函数,使得抛出的异常不易阅读
      给匿名函数命名是很好的习惯,匿名函数可以使代码更简洁,但是出错后的提示非常难以研读.
    • try/catch 限于同步代码,使得异常捕获较为复杂
      try/catch是无法处理回调函数的,换句话说只能捕获同步代码的错误.如果是异步代码,
      就需要在异步代码内部做异常的判断,但是异步处理不使用try/catch,一般和回调函数搭配使用
      而且Node规定,回调函数的第一个参数,为异步的错误对象.
      总结:同步代码使用try/catch来处理错误,
      异步代码使用错误标志参数来进行异步的处理.
    • 单线程可靠性问题
      单线程最大的好处就是:存在不同线程之间的资源的调动性,最大的问题就是可靠性.
      当一个单线程在运行中发生了错误,而错误并没有获取到,这时候问题就出现了;
      执行同步错误的时候被阻塞了,单线程是无能为力的.为了避免这种情况的发生,
      需要注意以下几个方面:1.代码一定要严谨 2.尽量避免使用同步代码 3.使用多进程工具
    • 不适合cpu密集型的场景
      比如:事情的处理,纯粹的运算.
    • 回调代码习惯影响阅读

2.推荐Node学习的网站

  • node官网 nodejs.org
  • 程序员社区 gitHub.com
0 0
原创粉丝点击