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获取本机内网和外网ip地址的实现代码
Jun 01 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
浅析nodejs实现Websocket的数据接收与发送
Nov 19 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
nodeJS微信分享
Dec 20 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
nodejs中express入门和基础知识点学习
Sep 13 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
php实现mysql数据库操作类分享
2014/02/14 PHP
smarty中js的调用方法示例
2014/10/27 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
使用Python操作MySQL的一些基本方法
2015/08/16 Python
详解python 发送邮件实例代码
2016/12/22 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
高山背包:High Sierra
2017/11/23 全球购物
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
2014/03/30 面试题
2014新课程改革心得体会
2014/03/10 职场文书
市政管理求职信范文
2014/05/07 职场文书
公民代理授权委托书
2014/09/24 职场文书
吧主申请感言怎么写
2015/08/03 职场文书