模塊
1.在Node.js中垄提,以模塊為單位劃分所有功能漩氨,并且提供了一個(gè)完整的模塊加載機(jī)制饭耳,這時(shí)的我們可以將應(yīng)用程序劃分為各個(gè)不同的部分
2.狹義的說膛腐,每一個(gè)JavaScript文件都是一個(gè)模塊;而多個(gè)JavaScript文件之間可以相互require鼎俘,他們共同實(shí)現(xiàn)了一個(gè)功能哲身,他們整體對(duì)外,又稱為一個(gè)廣義上的模塊
3.Node.js中贸伐,一個(gè)JavaScript文件中定義的變量律罢、函數(shù),都只在這個(gè)文件內(nèi)部有效棍丐。當(dāng)需要從此JS文件外部引用這些變量、函數(shù)時(shí)沧踏,必須使用exports
對(duì)象進(jìn)行暴露歌逢。使用者要用require()
命令引用這個(gè)JS文件。
1.一個(gè)JavaScript文件翘狱,可以向外
exports
無(wú)數(shù)個(gè)變量秘案、函數(shù)。但是require
的時(shí)候潦匈,僅僅需要require
這個(gè)JS文件一次阱高。使用的它的變量、函數(shù)的時(shí)候茬缩,用點(diǎn)語(yǔ)法即可
- 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
暴露很多東西凰锡,比如函數(shù)未舟、變量。
- index.js 文件
var msg = require("./test/msg.js");
console.log(msg.msg);
console.log(msg.data);
msg.info();
在使用者中掂为,只需要
require
一次裕膀。
相當(dāng)于增加了頂層變量。所有的函數(shù)勇哗、變量都要從這個(gè)頂層變量走
2.可以將一個(gè)JavaScript文件中昼扛,描述一個(gè)類。用
module.export = 構(gòu)造函數(shù)名
的方式向外暴露一個(gè)類
- 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.兩種方式總結(jié):js文件和js文件之間有兩種合作的模式:
1) 某一個(gè)js文件中欲诺,提供了函數(shù)抄谐,供別人使用。 只需要暴露函數(shù)就行了瞧栗;
exports.msg=msg;
2) 某一個(gè)js文件斯稳,描述了一個(gè)類。module.exports = People;
如果在require命令中迹恐,這么寫:
var foo = require("foo.js"); //沒有寫./挣惰, 所以不是一個(gè)相對(duì)路徑。是一個(gè)特殊的路徑
那么Node.js將該文件視為node_modules目錄下的一個(gè)文件
npm
去npm社區(qū)搜索需求,然后點(diǎn)進(jìn)去憎茂,看api珍语。npm官網(wǎng)
如果要配置一個(gè)模塊npm install 模塊名字
就可以安裝。
安裝的時(shí)候竖幔,要注意板乙,命令提示符的所在位置。