a.js
// require 是一个方法
// 它的作用就是用来加载模块的
// 在 Node 中,模块有三种:
// 具名的核心模块,例如 fs、http
// 用户自己编写的文件模块
// 相对路径必须加 ./
// 可以省略后缀名
// 相对路径中的 ./ 不能省略,否则报错
// 在 Node 中,没有全局作用域,只有模块作用域
// 外部访问不到内部
// 内部也访问不到外部
// 默认都是封闭的
// 既然是模块作用域,那如何让模块与模块之间进行通信
// 有时候,我们加载文件模块的目的不是为了简简单单的执行里面的代码,更重要是为了使用里面的某个成员
var foo = 'aaa'
console.log('a start')
function add(x, y) {
return x + y
}
// Error: Cannot find module 'b'
// require('b')
// 可以
// require('./b.js')
// 推荐:可以省略后缀名
require('./b')
console.log('a end')
console.log('foo 的值是:', foo)
b.js
console.log('b start')
// console.log(add(10, 20))
var foo = 'bbb'
require('./c.js')
console.log('b end')
c.js
console.log('ccc')