1.调用其他文件
首先,文件命名最好不要出现空格 、点、中文等字符,并且建议全小写字符以免在不同的开发环境和系统环境下出错。
-
引入–require方法
相对路径
./ ../
、绝对路径/
、模块路径;顶层对象
global
的介绍。 -
输出–module对象
moudule.exports
与exports
的介绍;注意模块缓存。
此时我们创建每个文件都相当于一个模块,Node中模块的导入与输出比起原生JS要好很多,每个文件都是一个作用域,不用担心变量暴露在全局,同时我们引入的时候可以随便采用合适的变量名接受。
2. 原生模块
Node中存在很多自带的模块,这些模块各自有不同的功能,而他们的引入方式同样也是使用require
,当然此时的路径是模块路径。原生模块总是优先加载的。
接下来学习原生模块,不多,常用的更少。详细API可以参数Node.js API文档。
1. 常用的
-
path - 路径
学习全局变量
__dirname
__filename
。处理各种路径,重点API:join、resolve、relative、parse。
-
url - URL
用于解析路径。
重点API: URL类、parse、resolve。
-
querystring - 查询字符串
用于解析查询字符串。
重点API:parse、stringify。
-
fs - 文件系统
这个模块很重要。它提供了文件相关的操作。
学习Node中回调函数的通常写法。
学习Node的同步API与对应的异步API。
重点API:readFile、writeFile、appendFile、unlink、copyFile、rename、readdir、mkdir、rmdir。
-
readline - 逐行读取
了解一哈:createInterface、监听line事件
2. 需要了解的
- events - 事件触发器
Node中所有的异步I/O操作都采用事件策略,首先监听事件,完成之后发布事件,也就是设计模式中的观察者模式。很多其它的模块都继承了events模块的功能。
重点API:EventEmitter类、on off once emit。
- stream - 流
流模块用于处理流数据,很多其他模块都继承了它的功能,但是我们极少直接使用stream流。
配合fs模块理解流的概念。
- http - HTTP
启动HTTP服务。
http/https模块很牛逼,但是有些api使用起来有点难受,所以实际过程中我们会使用某些非原生的模块来代替,比如express/koa等。
重点API:.createServer().listen() 、res.writeHead()、res.write()、res.end()