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实现黑名单中间件设计
Jun 17 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
浅谈nodejs中的类定义和继承的套路
Jul 26 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 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
新闻分类录入、显示系统
2006/10/09 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
python版飞机大战代码分享
2018/11/20 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
django rest framework 自定义返回方式
2020/07/12 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
写给老婆的检讨书
2014/02/21 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
走进科学观后感
2015/06/18 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
员工给公司的建议书
2019/06/24 职场文书
导游词之任弼时故居
2020/01/07 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android
使用Python获取字典键对应值的方法
2022/04/26 Python