nodejs 使用 js 模块的方法实例
author:一佰互联 2019-03-30   click:208

简介:Intro#最近需要用 nodejs 做一个爬虫,Google 有一个 Puppeteer 的项目,可以用它来做爬虫,有关 Puppeteer 的介绍网上也有很多,在这里就不做详细介绍了。 node 小白,开始的时候有点懵逼,模块导出也不会。官方文 ...

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){ // ... }}
导出一个静态类
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 里的 getDistrictCodelet districtNme = districtUtil.getDistrictCode("districtName");
对前端全栈工程师感兴趣的同学关注我的头条号,并在后台私信发送关键字:“前端”即可获取免费的前端全栈工程师学习资料知识体系已整理好,欢迎免费领取。还有面试视频分享可以免费获取。关注我,可以获得没有的架构经验哦!!本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yinxi.net学习互联网营销技术请到巅云建站www.yx10011.com。