nodejs 使用 js 模組
阿新 • • 發佈:2018-12-03
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
希望你能有所收穫