nodejs 使用 js 模塊 Intro 最近需要用 nodejs 做一個爬蟲,Google 有一個 Puppeteer 的項目,可以用它來做爬蟲,有關 Puppeteer 的介紹網上也有很多,在這裡就不做詳細介紹了。 node 小白,開始的時候有點懵逼,模塊導出也不會。 官方文檔上說支持 .mj ...
nodejs 使用 js 模塊
Intro
最近需要用 nodejs 做一個爬蟲,Google 有一個 Puppeteer 的項目,可以用它來做爬蟲,有關 Puppeteer 的介紹網上也有很多,在這裡就不做詳細介紹了。 node 小白,開始的時候有點懵逼,模塊導出也不會。
官方文檔上說支持 *.mjs 但是還要改文件擴展名,感覺有點怪怪的,就沒用,主要是基於js的模塊使用。
模塊導出的兩種方式
因為對 C# 比較熟悉,從我對 C# 的理解中,將 nodejs 中模塊導出分成兩種形式:
- 一個要實例化才能調用的模塊
- 一個不需要實例化就可以調用的靜態類,提供一些靜態方法
導出一個要實例化的類
module.exports = exports = function (){ };
module.exports = exports = function() { this.syncCompanyList = async function(developerName){ await syncCompanyInfo(developerName); }; async function syncCompanyInfo(developerName){ // ... } }
導出一個靜態類
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;
引用導出的模塊方法
在 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');
End
希望你能有所收穫