Skip to content

Node.js 基础

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

特点

  • 异步非阻塞的 I/O (I/O 线程池) (针对文件和数据库的写和读操作)
  • 特别适用于 I/O 密集型应用 (Java 适合 CPU 密集型)
  • 事件循环机制
  • 单线程 (成也单线程,败也单线程)
  • 跨平台

应用场景

Node 搭建的服务器适合于 I/O 密集型,也就是经常请求数据库的,但是 CPU 压力很轻,一个服务员

Java 搭建的服务器适合于 CPU 密集型

函数

  • Node 中任何一个模块 (JS 文件) 都被一个看不见的外层函数所包裹
  • 这个函数用于支持模块化语法和隐藏服务器内部实现
javascript
function (exports, require, module, __filename, __dirname) {}
// exports:用于支持 CommonJs 模块化规范的暴露语法
// require:用于支持 CommonJs 模块化规范的引入语法
// module:用于支持 CommonJs 模块化规范的暴露语法
// __filename:当前运行文件的绝对路径 /Users/code/test.js
// __dirname:当前运行文件所在文件夹的绝对路径 /Users/code

// 可以直接在 Node 环境运行一个 js 文件,打印出这个函数
console.log(arguments.callee.toString());

global 对象

浏览器端的 JS 由 BOM (window)、DOM (document) 和 ECMAScript 规范三部分组成

Node 端的 JS 由 ECMAScript 规范和 global 全局变量组成

  • Node 中 this 指向一个空对象,直接用 global 指向全局对象
  • global 的一些常用属性
    • clearImmediate:清空立即执行函数
    • clearInterval:清除循环定时器
    • clearTimeout:清除延迟定时器
    • setImmediate:设置立即执行函数
    • setInterval:设置循环定时器
    • setTimeout:设置延迟定时器

process 对象