我来接着下学习Node.js中一个非常重要的部分,文件的操作,主要是文件的读写,也就是常说的I/O操作。
在学习文件操作之前,先了解两个非常重要的基础知,就是Node.js里的模块和包的概念。
在前端的编程里,我们经常把单独功的一些JS脚本写一个文件里,用这个文件的时就用script标签的src属性来引用。在node.js里,同样也是把单独功能的脚本写一个单独的文件里,不过引入的方式变了,是用require来引用。这个单独的JS文件,在node.js里叫模块
1、什么是模块呢?我们可以简单的把它看成一个实现单独功能的文件。比如在前端JS中的jQuery.js,在node.js里,我们把它就看成一个模块的概念就行。 在前端的JS在使用它之前,是用 先要引入此文件。在node.js里,则需要require来引入.
我们新建一个require文件,来引入一下原来写好的sum.js require("./sum"); 我们发现sum.js文件就自动的运行了。 如果我们想把sum.js里的值获得到、或运行sum.js里定义的一个方法怎么办呢?
大家要注意,定义在模块里的方法,一定要用exports来暴露给调用它的文件,否则无法调用。在前端JS里,被引入的文件里定义的全局变量,在当前文件里是可以使用的,但node.js里不可以。这一点不同于前端的JS
每一个模块都相当于一个私有的作用域。这个模块里定义的变量,调用它的文件是访问不到了,除非用exports来暴露出来.
2、模块的需要返反的值,通过赋给exports的某个属性
3、包的概念:包含一个或多模块的(也就是JS文件的)文件夹(我们先简单的理为包就是一个实现完整功能的目录,其实它的意义远不止这些,先这样上手)
4、什么叫依赖?1、通俗的说就是包里各个文件之前的关系等。比如说谁是主文件(入口文件)2、包与包之间的引用关系。
在node.js里,是有模块和包这两个概念的,一个单独功能的文件,就是一个模块,可能一个复杂的功能,由多个模块组成,我们则把这多个模块,其实也就是文件,组织在一个文件夹里,然后用一个叫package.json的文本文件,来规定这些JS文件之间的关系(这个关系在node.js里叫依赖,就是包里的文件的组织关,一个包里,就是一个文件夹里,最其码要有一个主文件,可能这个主文件还要导入其它的JS文件才能运行,那package.json里,要把这个关系描述清楚)
5、包是模块化JS必须的。
我们可以在node.js项目中直使用别人写好的功能,就是使用别人写的包。也可以自己写一个包,发布到互联网上供大家使用。