Node.js是一个基于 Chrome V8 引擎跨平台的JavaScript 运行时环境。Node.js 使用了一个事件驱动、非阻塞式I/O、单线程的模型,使其轻量又高效。NodeJS具有以下优点:

  • 简单易学,生态广泛。NodeJS是一个基于V8引擎的JS运行时环境,NodeJS打破了过去JavaScript只能在浏览器中运行的局面,使得NodeJS支持开发服务端。
  • 超强的高并发能力。Node.js 使用了一个事件驱动、非阻塞式I/O 的模型,Node.js 应用程序在单个进程中运行,无需为每个请求创建新的线程。Node.js 在其标准库中提供了一组异步的 I/O 原语,以防止 JavaScript 代码阻塞。当 Node.js 执行 I/O 操作时(比如从网络读取、访问数据库或文件系统),Node.js 将在响应返回时恢复操作(而不是阻塞线程和浪费 CPU 周期等待)。使用Node.js,一个8GB内存的服务器,可以同时处理超过4万用户的连接。
  • 实现高性能服务器。

CommonJS规范

NodeJS采用CommonJS模块规范组织代码,通过module.exportsexport导出模块内容,通过require导入模块。在13.2.0的版本中,NodeJS 默认情况下会启用对ECMAScript(ESM)模块的实验支持。

Node命令行

全局变量

global:NodeJS环境中的全局对象,globalThis是global的别名。
dirname:用于当前模块目录路径。
filename:用于返回当前模块文件的绝对路径。

  1. // index.js
  2. // {//...} global在NodeJS环境下表示全局对象,global包含一些全局属性
  3. console.log(global,globalThis);
  4. console.log(global === globalThis); // true
  5. // __dirname返回当前模块目录
  6. console.log(__dirname); // /Users/study/nodeJS/nodeJS-example/src
  7. // __filename返回当前模块文件绝对路径
  8. console.log(__filename); // /Users/study/nodeJS/nodeJS-example/src/index.js