基础介绍
node环境下的相关操作 - 具体可参考 REPL 模块
REPL(交互式解释器) R Read - 读取 E Eval - 运算 P Print - 打印输出 L Loop - 重复 在REPL运行环境中使用下划线字符(“_”)来访问最近使用的表达式,但是不意味着可以改变变量的值
模块系统
作用:为了更好组织、管理代码,nodejs引入了模块
定义:一个文件就是一个独立的模块
特点:每个模块都有自己的独立作用域 - 模块作用域
扩展:作用域 1. 全局作用域 2. 函数作用域 3. 块级作用域(es2015+) 4. 模块作用域
Node.js核心模块
全局对象
全局对象global,其最根本的作用是作为一个全局变量的宿主。 按照ECMAScript定义,满足以下条件的变量是全局变量:
在最外层定义的变量
全局对象的属性
隐式定义的变量(未定义直接赋值的变量)
在Node.js中你不可能在最外层定义变量,因为所有用户代码都是输入当前模块的,而模块本身不是最外层上下文。
process: 用于描述当前Node.js进程状态的对象,提供了一个与操作系统的简单接口。
process.argv
process.argv 属性返回一个数组,这个数组包含了启动Node.js进程时的命令行参数。
第一个元素为process.execPath。即Node.js进程的可执行文件所在的绝对路径
第二个元素为当前执行的JavaScript文件路径。
剩余的元素为其他命令行参数。
```
node index.js 1991 name=chenfangxu --v "lalla"
[ '/usr/local/Cellar/node/7.9.0/bin/node', '/Users/cfangxu/project/demo/myNEapp/site/index.js', '1991', 'name=chenfangxu', '--v', 'lalla' ]
只有一个参数,不会格式化,而是直接返回字符串。 util.format('%% %s'); // '%% %s'
```
util.inspect(object[, options])
options
showHidden 如果为 true,则 object 的不可枚举的符号与属性也会被包括在格式化后的结果中。 默认为 false。
depth 指定格式化 object 时递归的次数。 这对查看大型复杂对象很有用。 默认为 2。 若要无限地递归则传入 null。
colors 如果为 true,则输出样式使用 ANSI 颜色代码。 默认为 false。 颜色可自定义。
customInspect 如果为 false,则 object 上自定义的 inspect(depth, opts) 函数不会被调用。 默认为 true。
showProxy 如果为 true,则 Proxy 对象的对象和函数会展示它们的 target 和 handler 对象。 默认为 false。
maxArrayLength 指定格式化时数组和 TypedArray 元素能包含的最大数量。 默认为 100。 设为 null 则显示全部数组元素。 设为 0 或负数则不显式数组元素。
breakLength 一个对象的键被拆分成多行的长度。 设为 Infinity 则格式化一个对象为单行。 默认为 60。
文件系统fs
fs模块是文件操作的封装,它提供了文件的读取、写入、更名、删除、遍历目录、链接等POSIX文件系统的操作。 与其他模块不同,fs模块中大部分的操作都提供了异步的和同步的两个版本。
注意: Node.js的异步编程接口习惯是以函数的最后一个参数为回调函数,通常一个函数只有一个回调函数。回调函数的实际参数中第一个是err,其余的参数是其他返回的内容。如果没有发生错误,err的值会是null或undefined,如果有错误发生,err通常是Error对象的实例。
注意: 与同步I/O函数不同,Node.js中的异步函数大多没有返回值。
fs.open方法中有参数mode,用于创建文件时给文件指定权限,默认为0o666。回调函数将会传递一个文件描述符fd。
文件权限: 是POSIX操作系统中对文件读取和访问权限的规范,通常用一个八进制数来表示。例如0o754表示文件所有者的权限是7(读、写、执行),同组的用户权限是5(读,执行),其他用户的权限是4(读),写成字符表示就是 -rwxr-xr--。
文件描述符: 是一个非负整数,表示操作系统内核为当前进程所维护的打开文件的记录表索引。
module
Last updated
Was this helpful?