Node.js学习笔记(一)——Node.js简介

Node.js简介

  • Node.js是一个能够在服务器端运行JavaScript的开放源代码、 跨平台JavaScript运行环境。
  • Node采用Google开发的V8引擎运行js代码,使用事件驱动非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模。
  • Node是对ES标准的一个实现,Node也是一个JS引擎
  • 通过Node可以使JS代码在服务器端执行,在Node出现之前,JS通常作为客户端程序设计语言使用,以JS写出的程序常在用户的浏览器上运行。
  • Node.js允许通过JS和一系列模块来编写服务器端应用和网络相关的应用。
  • 核心模块包括文件系统I/O、网络(HTTP、TCP、UDP、DNS、 TLS/SSL等)、二进制数据流、加密算法、数据流等等。
  • Node模块的API形式简单,降低了编程的复杂度。
  • 使用框架可以加速开发。常用的框架有Express.js、Socket.IO 和Connect等。Node.js的程序可以在Microsoft Windows、 Linux、Unix、Mac OS X等服务器上运行。
  • Node.js也可以使用CoffeeScript、TypeScript、Dart语言,以及其他能够编译成JavaScript的语言编程。
  • Node仅仅对ES标准进行了实现, 所以在Node中不包含DOM和BOM
  • Node中可以使用所有的内建对象
    • String Number Boolean Math Date RegExp Function Object Array
    • 而BOM和DOM都不能使用
    • 但是可以用console
    • 也可以使用定时器(setTimeout()和setInterval())
  • Node可以在后台来编写服务器
    • Node编写服务器都是单线程的服务器

(补充:进程和线程)

进程

  • 进程就是一个一个的工作计划(类似于工厂中的车间)

线程

  • 线程是计算机的最小运算单位(类似于工厂中的工人)
  • 线程是干活儿的

传统的服务器都是多线程的

  • 每进来一个请求,就创建一个线程去处理请求

Node服务器是单线程的

  • Node处理请求时是单线程,但是在后台拥有一个I/O线程池

Node.js之父

瑞安·达尔(Ryan Dahl)

Node.js用途

  • Web服务API,比如REST
  • 实时多人游戏
  • 后端的Web服务,例如跨域、服务器端的请求
  • 基于Web的应用
  • 多客户端的通信,如即时通信

猜你喜欢

转载自blog.csdn.net/qq_32755875/article/details/109497907