復(fù)習(xí)一下昨天的內(nèi)容
//引入http模塊
var http=require('http');
var app=http.createServer(function(req,res){
//設(shè)置請求頭
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
//輸入內(nèi)容
res.write('你好 nodejs');
//結(jié)束響應(yīng)
res.end();
})
app.listen(8002,'127.0.0.1');
今天我們來學(xué)習(xí)一下如何把nodejs的一些公共模塊單獨封裝出去
1.我們可以把公共的功能 抽離成為一個單獨的 js 文件 作為一個模塊,默認(rèn)情況下面這個模塊里面的方法或者屬性面褐,外面是沒法訪問的恢氯。如果要讓外部可以訪問模塊里面的方法或者屬性冕碟,就必須在模塊里面通過 exports 或者 module.exports 暴露屬性或者方法涮母。
- 在需要使用這些模塊的文件中忆家,通過 require 的方式引入這個模塊庵芭。這個時候就可以使用模塊里面暴露的屬性和方法。
先建一個tools.js 代碼如下:
var tools={
add:function(x,y){
return x+y;
},
sayHello:function(){
return '你好 nodejs'
}
}
在這個文件中,我們簡單的定義了2個方法
問題了我們該如何把他暴露出去,給有需要的人使用呢
module.exports
或者 exports
那這兩者有什么區(qū)別呢
我們看看他的調(diào)用方法就知道了
//exports返回的是模塊函數(shù)
exports.tools = tools;
tools.tools.add(1,2)
//module.exports返回的是模塊對象本身涯曲,返回的是一個類
module.exports = tools;
tools.add(1,2)
在我們開頭寫的代碼里測試
var tools=require('./tools.js');
console.log(tools.add(1,2));
console.log(tools.sayHello());
這里又引出了另外一個問題了,我們寫前端是,經(jīng)常require第三方的控件,也不需要寫詳細(xì)的路徑呀,老寫路徑好煩人
npm init 生成 package.json
創(chuàng)建一個node_modules文件夾并且創(chuàng)建一個xixihaha文件夾 如圖:
截屏2019-11-13下午3.22.37.png
cd到xixihaha的目錄下 打開終端運行
npm init --yes
之后你就會發(fā)現(xiàn)多了一個package.json文件
截屏2019-11-13下午3.24.23.png
截屏2019-11-13下午3.24.44.png
當(dāng)在外邊引入xixihaha是
//xixihaha 在根目錄不存在答憔,去node_modules ,找到了xixihaha文件夾掀抹。 xixihaha文件夾下面有package.json ,找 package.json 入口文件 "main": "xixhaha.js"
var xixi = require('xixihaha');
這樣就可以不用寫路徑也能引用找到啦
不喜勿噴,侵權(quán)即刪