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 相关文章推荐
Windows系统中安装nodejs图文教程
Feb 28 NodeJs
nodejs实现获取某宝商品分类
May 28 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
Nodejs实现短信验证码功能
Feb 09 NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 NodeJs
配置nodejs环境的方法
May 13 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 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
单位速度在实战中的运用
2020/03/04 星际争霸
php开发工具之vs2005图解
2008/01/12 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
JavaScript里 ==与===区别详解
2016/08/16 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
简述vue中的config配置
2018/01/23 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
python正则表达式中的括号匹配问题
2014/12/14 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
利用python画一颗心的方法示例
2017/01/31 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
Python的UTC时间转换讲解
2019/02/26 Python
django模板结构优化的方法
2019/02/28 Python
详解python和matlab的优势与区别
2019/06/28 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
Python socket模块方法实现详解
2019/11/05 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
社区党风廉政建设调研报告
2015/01/01 职场文书
美容院员工规章制度
2015/08/05 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS