nodejs 使用 js 模塊的方法實(shí)例詳解
Intro#
最近需要用 nodejs 做一個(gè)爬蟲(chóng),Google 有一個(gè) Puppeteer 的項(xiàng)目,可以用它來(lái)做爬蟲(chóng),有關(guān) Puppeteer 的介紹網(wǎng)上也有很多,在這里就不做詳細(xì)介紹了。 node 小白,開(kāi)始的時(shí)候有點(diǎn)懵逼,模塊導(dǎo)出也不會(huì)。
官方文檔上說(shuō)支持 *.mjs 但是還要改文件擴(kuò)展名,感覺(jué)有點(diǎn)怪怪的,就沒(méi)用,主要是基于js的模塊使用。
模塊導(dǎo)出的兩種方式#
因?yàn)閷?duì) C# 比較熟悉,從我對(duì) C# 的理解中,將 nodejs 中模塊導(dǎo)出分成兩種形式:
1.一個(gè)要實(shí)例化才能調(diào)用的模塊
2.一個(gè)不需要實(shí)例化就可以調(diào)用的靜態(tài)類,提供一些靜態(tài)方法
•導(dǎo)出一個(gè)要實(shí)例化的類
module.exports = exports = function (){ }; module.exports = exports = function() { this.syncCompanyList = async function(developerName){ await syncCompanyInfo(developerName); }; async function syncCompanyInfo(developerName){ // ... } }
•導(dǎo)出一個(gè)靜態(tài)類
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('區(qū)') > 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 ""; } // 設(shè)置導(dǎo)出的方法及屬性 exports.getDistrictCode = getDistrictCode; exports.getNormalDistrictName = getNormalDistrictName;
引用導(dǎo)出的模塊方法#
在 node 里使用 require 來(lái)引用模塊
•引用 npm 包
const log4js = require("log4js");
•引用自己編寫(xiě)的模塊
const districtUtil = require("./utils/districtUtil");
使用導(dǎo)出的模塊#
要使用某一模塊,需要先引用某一模塊,引用模塊可以參考上一步
•實(shí)例類
const company = require("./company"); // ... // 實(shí)例化一個(gè) company 對(duì)象 var comp = new company(); // 調(diào)用 company 里的 syncCompanyList comp.syncCompanyList ();
•靜態(tài)類
const districtUtil = require("./utils/districtUtil"); // ... // 調(diào)用 districtUtil 里的 getDistrictCode let districtNme = districtUtil.getDistrictCode('districtName');
總結(jié)
以上所述是小編給大家介紹的nodejs 使用 js 模塊的方法實(shí)例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
詳解NodeJS框架express的路徑映射(路由)功能及控制
這篇文章主要介紹了詳解NodeJS框架express的路徑映射(路由)功能及控制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03Node.js實(shí)現(xiàn)批量替換文件內(nèi)容示例
這篇文章主要為大家介紹了Node.js實(shí)現(xiàn)批量替換文件內(nèi)容示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Node.js與Sails ~項(xiàng)目結(jié)構(gòu)與Mvc實(shí)現(xiàn)及日志機(jī)制
Sails是一個(gè)Node.js的中間架構(gòu),很方便的幫助我們搭建web應(yīng)用程序。還有node.js與Sails日志機(jī)制在本文中也講到了,需要的朋友可以一起學(xué)習(xí)下2015-10-10node.js Sequelize實(shí)現(xiàn)單實(shí)例字段或批量自增、自減
Sequelize 可以實(shí)現(xiàn)針對(duì)單個(gè)實(shí)例的一或多個(gè)字段的自增、自減操作,也可以對(duì)符合條件的數(shù)據(jù)進(jìn)行批量的自增、自減操作。單個(gè)實(shí)例字段的自增、自減可以利用Instance的相應(yīng)方法實(shí)現(xiàn),而批量自增、自減則需要借助sequelize提供的字面量方法實(shí)現(xiàn)。下面來(lái)看看詳細(xì)的介紹吧。2016-12-12node.js 使用 net 模塊模擬 websocket 握手進(jìn)行數(shù)據(jù)傳遞操作示例
這篇文章主要介紹了node.js 使用 net 模塊模擬 websocket 握手進(jìn)行數(shù)據(jù)傳遞操作,結(jié)合實(shí)例形式分析了node.js基于net模塊模擬 websocket握手相關(guān)原理及進(jìn)行數(shù)據(jù)傳遞具體操作技巧,需要的朋友可以參考下2020-02-02xtemplate node.js 的使用方法實(shí)例解析
這篇文章主要介紹了xtemplate node.js 的使用方法實(shí)例說(shuō)明,非常不錯(cuò),介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08