Node中的JavaScript
- ECMAScript
- 核心模块
- 第三方模块
- 用户自定义模块
核心模块
Node为JavaScript提供了很多服务器级别的API,这些API绝大多数都被包装到了一个具名的核心模块中。
例如文件操作的fs
核心模块,http服务构建的http
模块,path
路径操作模块,os
操作系统信息模块
等......
const fs = require('fs')
//requier是一个方法,用来加载模块
用户自定义模块
require、exports
-
用户自己编写的文件模块
- a.js文件
console.log('a start'); require('./b.js');//相对路径的./不能省略 可以省略文件后缀名require('./b') console.log('a end')
- b.js文件
console.log('b')
- 最终执行结果为:a start 、b、a end
-
Node中,没有全局作用域,只有模块作用域
- a.js文件
var foo = 'aaa'; require('./b.js'); console.log(foo);
- b.js文件
var foo = 'bbb'; console.log(foo)
- 执行a文件:bbb、aaa
-
既然是模块作用域,那如何让模块之间进行通信
有时候,加载模块的目的不是为了简单的执行里面的代码,而是为了使用里面的某个成员
require有两个作用:
- 加载文件模块并执行里面的代码
- 拿到被加载文件导出的接口对象exports
-
a.js文件
let bExports = require('./b'); console.log(bExports)
-
b.js文件
exports.foo = 'hello';
-
执行a文件:{ foo: 'hello' }
网友评论