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 url验证(url-valid)的使用方法
Nov 18 NodeJs
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
nodejs中的fiber(纤程)库详解
Mar 24 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
nodejs实现爬取网站图片功能
Dec 14 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
nodejs更改项目端口号的方法
May 13 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
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
JS trim去空格的最佳实践
2011/10/30 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python中类型关系和继承关系实例详解
2015/05/25 Python
Python sys.argv用法实例
2015/05/28 Python
python中的字符串内部换行方法
2018/07/19 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
复核员上岗演讲稿
2014/01/05 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
校长创先争优承诺书
2014/08/30 职场文书
2015年少先队活动总结
2015/03/25 职场文书
学生通报表扬范文
2015/05/04 职场文书
话题作文之诚信
2019/11/28 职场文书
在redisCluster中模糊获取key方式
2021/07/09 Redis
dubbo服务整合zipkin详解
2021/07/26 Java/Android