模块
1.在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分
2.狭义的说,每一个JavaScript文件都是一个模块;而多个JavaScript文件之间可以相互require,他们共同实现了一个功能,他们整体对外,又称为一个广义上的模块
3.Node.js中,一个JavaScript文件中定义的变量、函数,都只在这个文件内部有效。当需要从此JS文件外部引用这些变量、函数时,必须使用exports
对象进行暴露。使用者要用require()
命令引用这个JS文件。
1.一个JavaScript文件,可以向外
exports
无数个变量、函数。但是require
的时候,仅仅需要require
这个JS文件一次。使用的它的变量、函数的时候,用点语法即可
- msg.js文件
/**
* Created by ubuntu on 17-8-4.
*/
var msg ="你好,我是msg.js中的变量"
var data = {name:"小明",password:"456123"}
function info() {
console.log(data.name+""+data.password)
}
//讲文件暴露出去
exports.msg = msg;
exports.data = data;
exports.info = info;
js文件中,可以用
exports
暴露很多东西,比如函数、变量。
- index.js 文件
var msg = require("./test/msg.js");
console.log(msg.msg);
console.log(msg.data);
msg.info();
在使用者中,只需要
require
一次。
相当于增加了顶层变量。所有的函数、变量都要从这个顶层变量走
2.可以将一个JavaScript文件中,描述一个类。用
module.export = 构造函数名
的方式向外暴露一个类
- people.js 文件
function People(name,age,password) {
this.name = name;
this.age = age;
this.password = password;
}
People.prototype = {
sayHello:function () {
console.log(this.name+this.age+this.password);
}
}
module.exports = People;
- index.js文件
var People = require("./test/msg.js");
var onePeople = new People("小明","男","456788");
onePeople.sayHello();
3.两种方式总结:js文件和js文件之间有两种合作的模式:
1) 某一个js文件中,提供了函数,供别人使用。 只需要暴露函数就行了;
exports.msg=msg;
2) 某一个js文件,描述了一个类。module.exports = People;
如果在require命令中,这么写:
var foo = require("foo.js"); //没有写./, 所以不是一个相对路径。是一个特殊的路径
那么Node.js将该文件视为node_modules目录下的一个文件
npm
去npm社区搜索需求,然后点进去,看api。npm官网
如果要配置一个模块npm install 模块名字
就可以安装。
安装的时候,要注意,命令提示符的所在位置。