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.exports
或export
导出模块内容,通过require
导入模块。在13.2.0的版本中,NodeJS 默认情况下会启用对ECMAScript(ESM)模块的实验支持。
Node命令行
全局变量
global:NodeJS环境中的全局对象,globalThis是global的别名。
dirname:用于当前模块目录路径。
filename:用于返回当前模块文件的绝对路径。
// index.js
// {//...} global在NodeJS环境下表示全局对象,global包含一些全局属性
console.log(global,globalThis);
console.log(global === globalThis); // true
// __dirname返回当前模块目录
console.log(__dirname); // /Users/study/nodeJS/nodeJS-example/src
// __filename返回当前模块文件绝对路径
console.log(__filename); // /Users/study/nodeJS/nodeJS-example/src/index.js