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 npm install全局安装和本地安装的区别
Jun 05 NodeJs
基于NodeJS的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
NodeJS学习笔记之Connect中间件模块(一)
Jan 27 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
NodeJS使用formidable实现文件上传
Oct 27 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
Nodejs之http的表单提交
Jul 07 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
nodejs的安装使用与npm的介绍
Sep 11 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 array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
js获取内联样式的方法
2015/01/27 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
在Python中使用第三方模块的教程
2015/04/27 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
Python基于select实现的socket服务器
2016/04/13 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
python绘制汉诺塔
2021/03/01 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
请说出几个常用的异常类
2013/01/08 面试题
如何实现一个自定义类的序列化
2012/05/22 面试题
秋季运动会活动方案
2014/02/05 职场文书
python 详解turtle画爱心代码
2022/02/15 Python
python小型的音频操作库mp3Play
2022/04/24 Python