模块(module)
--------------------------------
1. 在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分。
不可能用一个js文件去写全部的业务
2. 在 Nodejs 中每一个js文件都可以当成是一个模块,多个js文件之间可以通过require()来相互调用,实现一个共同的功能,这些js文件整体对外又可以当成一个模块。
3. Node.js中,一个JavaScript文件中定义的变量、函数,都只在这个文件内部有效。当需要从此JS文件外部引用这些变量、函数时,必须使用exports对象进行暴露。使用者要用require()命令引用这个JS文件。
4.一个JavaScript文件,可以向外exports无数个变量、函数。但是require的时候,仅仅需要require这个JS文件一次。使用的它的变量、函数的时候,用点语法即可
注意:
exports为一个空的对象 作用是向外暴露数据
require()函数接受收据,接受的数据即为exports对象
require()的时候可以不需要文件的后缀名,英文node默认识别js文件
在require函数中使用./的写法,表示到当前路径下去寻找相对应的文件,没有使用./表示在node_modules中寻找相对应的文件
5. 在nodejs中一般使用一个文件夹来管理模块,文件夹名为node_modules,
那么Node.js中在使用require命令时候将会去寻找node_modules目录下的相对应文件执行。
这样做的好处:分享项目的时候,不需要带着modules一起给别人。
6. node_modules文件夹并不一定在同级目录里面,在任何直接祖先级目录中,都可以
7. 可以使用文件夹来管理模块,比如 var bar = require("bar"); 那么Node.js将会去寻找node_modules目录下的bar文件夹中的index.js去执行。
每一个模块文件夹中,推荐都写一个package.json文件,这个文件的名字不能改。node将自动读取里面的配置。有一个main项,就是入口文件,package.json文件,要放到模块文件夹的根目录去。
---------------------------------------------------------------
npm 包管理工具
1. 模块就是一些功能的封装,所以一些成熟的、经常使用的功能,都有人封装成为了模块。并且放到了社区中,供人免费下载。
这个社区,叫做npm node package management
2. 官网 https://www.npmjs.com
3. 安装模块 npm install 模块名 模块名字全球唯一。 命令提示符的所在位置即为 模块的下载位置
安装依赖
1.我们的依赖包,可能在随时更新,我们永远想保持更新,或者某持某一个版本;
2.项目越来越大的时候,给别人看的时候,没有必要再次共享我们引用的第三方模块。
用package.json来管理依赖。