上一節(jié)-node.js學(xué)習(xí)(6)—ajax提交數(shù)據(jù)練習(xí)
前幾節(jié)关噪,我們講了通過nodejs來模擬接口,前臺(tái)請(qǐng)求數(shù)據(jù)叶圃。本節(jié)我們開始講解node的模塊化宴抚。
1.自定義模塊
前面勒魔,我們講解了http、fs模塊菇曲,這些模塊都是node自己本身的模塊冠绢,那么我們自己怎么自定義模塊呢。
我們這里假設(shè)b.js是我們需要引入的模塊常潮。代碼如下:
var a=1弟胀;
var b=2;
我們?cè)赼.js中使用b;
var mod=require('b.js');
console.log(mod);
運(yùn)行代碼我們會(huì)發(fā)現(xiàn)報(bào)錯(cuò)了
Error: Cannot find module 'b.js'
奇怪孵户,我們明明已經(jīng)引入了∠舫現(xiàn)在,我們把代碼修改下:
var mod=require('./b.js');
console.log(mod) //{}
結(jié)果為空對(duì)象延届,但是沒有報(bào)錯(cuò)剪勿,說明模塊已經(jīng)引入贸诚。對(duì)比之前的代碼方庭,發(fā)現(xiàn)我們?cè)谝肽K只多添加了./
。原因是
1.node.js中引入模塊酱固,如果不加./
這類路徑械念,它默認(rèn)識(shí)別為自己的系統(tǒng)模塊(實(shí)際也可以不加,后面我們會(huì)講到)
但是為空對(duì)象运悲。這又是為什么龄减?因?yàn)槲覀儧]有在模塊b中沒有導(dǎo)出。我們修改b模塊為:
exports.a=1;
exports.b=2;
在a模塊中輸出mod班眯,結(jié)果為
console.log(mod) //{a:1,b:2}
所以
2.node.js中希停,如果需要使用其他模塊,需要使用exports
導(dǎo)出所需要的內(nèi)容署隘。
上面我們只定義了a宠能,b兩個(gè)變量,使用了兩次exports磁餐,但是加入有很多需要多出的變量呢违崇,當(dāng)然又更簡(jiǎn)單的辦法。我們修改b.js的代碼如下
module.exports={
a:1,
b:2
}
結(jié)果同樣可以在a.js中獲得導(dǎo)出的a诊霹,b兩個(gè)變量羞延。
所以
3.node.js中,可以使用module.exports
導(dǎo)出多個(gè)模塊脾还。
4.由于node.js中處理的就是js文件伴箩,所以我們?cè)谝肽K時(shí)候可以省略.js后綴洋满。
即上面的代碼可以改成
var mod=require('./b');