nodejs 使用 js 模塊的方法實例

Intro#

最近需要用 nodejs 做一個爬蟲,Google 有一個 Puppeteer 的項目,可以用它來做爬蟲,有關 Puppeteer 的介紹網上也有很多,在這裏就不做詳細介紹了。 node 小白,開始的時候有點懵逼,模塊導出也不會。

官方文檔上說支持 *.mjs 但是還要改文件擴展名,感覺有點怪怪的,就沒用,主要是基於js的模塊使用。

模塊導出的兩種方式#

因爲對 C# 比較熟悉,從我對 C# 的理解中,將 nodejs 中模塊導出分成兩種形式:

1.一個要實例化才能調用的模塊
2.一個不需要實例化就可以調用的靜態類,提供一些靜態方法

•導出一個要實例化的類

module.exports = exports = function (){ };
module.exports = exports = function() {
 this.syncCompanyList = async function(developerName){
   await syncCompanyInfo(developerName);
 };
 async function syncCompanyInfo(developerName){
   // ...
 }
}

前端全棧學習交流圈:866109386,面向1-3經驗年前端開發人員,幫助突破技術瓶頸,提升思維能力,羣內有大量PDF可供自取,更有乾貨實戰項目視頻進羣免費領取。

•導出一個靜態類

exports.funcName = function (){};
var getDistrictCode = function (districtName) {
  if (districtName) {
    for (let i= 0; i< DistrictInfo.length; i++) {
      let district = DistrictInfo[i];
      if (district["name"] == districtName || district["aliasName"] == districtName) {
        return district["code"];
      }
    }
  }
  return "";
};
var getNormalDistrictName = function (districtName) {
  if (districtName) {
    if (districtName.indexOf('區') > 0) {
      return districtName;
    }
    for (let i= 0; i< DistrictInfo.length; i++) {
      let district = DistrictInfo[i];
      if (district["name"] == districtName || district["aliasName"] == districtName) {
        return district["name"];
      }
    }
  }
  return "";
}
// 設置導出的方法及屬性
exports.getDistrictCode = getDistrictCode;
exports.getNormalDistrictName = getNormalDistrictName;

前端全棧學習交流圈:866109386,面向1-3經驗年前端開發人員,幫助突破技術瓶頸,提升思維能力,羣內有大量PDF可供自取,更有乾貨實戰項目視頻進羣免費領取。

引用導出的模塊方法#

在 node 裏使用 require 來引用模塊

•引用 npm 包

const log4js = require("log4js");

•引用自己編寫的模塊

const districtUtil = require("./utils/districtUtil");

使用導出的模塊#

要使用某一模塊,需要先引用某一模塊,引用模塊可以參考上一步

•實例類

const company = require("./company");
// ...
// 實例化一個 company 對象
var comp = new company();
// 調用 company 裏的 syncCompanyList 
comp.syncCompanyList ();

•靜態類

const districtUtil = require("./utils/districtUtil");
// ...
// 調用 districtUtil 裏的 getDistrictCode
let districtNme = districtUtil.getDistrictCode('districtName');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章