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的10个性能优化技巧
Jul 15 NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
详解nodeJS中读写文件方法的区别
Mar 06 NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
Apr 10 NodeJs
详解nodejs微信jssdk后端接口
May 25 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
nodejs制作小爬虫功能示例
Feb 24 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脚本的10个技巧(2)
2006/10/09 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP经典面试题集锦
2015/03/19 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python实现的用户登录系统功能示例
2018/02/05 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
Python中常用的内置方法
2019/01/28 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
python中取绝对值简单方法总结
2020/07/24 Python
如何用Python绘制3D柱形图
2020/09/16 Python
python urllib和urllib3知识点总结
2021/02/08 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
EJB的角色和三个对象
2015/12/31 面试题
Java如何支持I18N?
2016/10/31 面试题
优秀党支部书记事迹材料
2014/05/29 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
网络营销计划书
2015/01/17 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL