对Node.js 的理解

Node.js 是⼀个开源与跨平台的 JavaScript 运⾏时环境

在浏览器外运⾏ V8 JavaScript 引擎(Google Chrome 的内核),利⽤事件驱动、⾮阻塞和异步输⼊

输出模型等技术提⾼性能

可以理解为 Node.js 就是⼀个服务器端的、⾮阻塞式I/O的、事件驱动的 JavaScript 运⾏环境

Nodejs 采⽤了⾮阻塞型 I/O 机制,在做 I/O 操作的时候不会造成任何的阻塞,当完成之后,以时

间的形式通知执⾏操作

例如在执⾏了访问数据库的代码之后,将⽴即转⽽执⾏其后⾯的代码,把数据库返回结果的处理代码

放在回调函数中,从⽽提⾼了程序的执⾏效率

事件驱动就是当进来⼀个新的请求的时,请求将会被压⼊⼀个事件队列中,然后通过⼀个循环来检测

队列中的事件状态变化,如果检测到有状态变化的事件,那么就执⾏该事件对应的处理代码,⼀般都

是回调函数

⽐如读取⼀个⽂件,⽂件读取完毕后,就会触发对应的状态,然后通过对应的回调函数来进⾏处理

fs模块

fs(filesystem),该模块提供本地⽂件的读写能⼒,基本上是 POSIX ⽂件操作命令的简单包装

可以说,所有与⽂件的操作都是通过 fs 核⼼模块实现

导⼊模块如下:

1 const fs = require(‘fs’);

这个模块对所有⽂件系统操作提供异步(不具有 sync 后缀)和同步(具有 sync 后缀)两种操作

⽅式,⽽供开发者选择

2.1.1. ⽂件知识

在计算机中有关于⽂件的知识:

权限位 mode

标识位 flag

⽂件描述为 fd

2.1.2. 权限位 mode针对⽂件所有者、⽂件所属组、其他⽤⼾进⾏权限分配,其中类型⼜分成读、写和执⾏,具备权限位

4、2、1,不具备权限为0

如在 linux 查看⽂件权限位:

1 drwxr-xr-x 1 PandaShen 197121 0 Jun 28 14:41 core

2 -rw-r–r– 1 PandaShen 197121 293 Jun 23 17:44 index.md

在开头前⼗位中, d 为⽂件夹, - 为⽂件,后九位就代表当前⽤⼾、⽤⼾所属组和其他⽤⼾的权限

位,按每三位划分,分别代表读(r)、写(w)和执⾏(x),- 代表没有当前位对应的权限