nodejs 使用 js 模块的方法实例详解


Posted in NodeJs onDecember 04, 2018

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 里的 getDistrictCode
let districtNme = districtUtil.getDistrictCode('districtName');

总结

以上所述是小编给大家介绍的nodejs 使用 js 模块的方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
Mar 18 NodeJs
Nodejs的express使用教程
Nov 23 NodeJs
NodeJs的优势和适合开发的程序
Aug 14 NodeJs
详解nodejs 文本操作模块-fs模块(二)
Dec 22 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
nodejs基础之多进程实例详解
Dec 27 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 #NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 #NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 #NodeJs
详解从NodeJS搭建中间层再谈前后端分离
Nov 13 #NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 #NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 #NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 #NodeJs
You might like
解析ajax事件的调用顺序
2013/06/17 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
浅谈JavaScript之事件绑定
2013/07/08 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python下os模块强大的重命名方法renames详解
2017/03/07 Python
python下读取公私钥做加解密实例详解
2017/03/29 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
python print出共轭复数的方法详解
2019/06/25 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
如何利用cmp命令比较文件
2016/04/11 面试题
文化建设工作方案
2014/05/12 职场文书
高中教师考核方案
2014/05/18 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python
MySQL 原理与优化之Update 优化
2022/08/14 MySQL