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 实现模拟form表单上传文件
Jul 14 NodeJs
Nodejs全栈框架StrongLoop推荐
Nov 09 NodeJs
轻松创建nodejs服务器(3):代码模块化
Dec 18 NodeJs
nodejs实现获取某宝商品分类
May 28 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 NodeJs
Nodejs爬虫进阶教程之异步并发控制
Feb 15 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
解决nodejs中使用http请求返回值为html时乱码的问题
Feb 18 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
nodejs 简单实现动态html的方法
May 12 NodeJs
nodejs中实现用户注册路由功能
May 20 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读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
初识php MVC
2014/09/10 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
extjs 为某个事件设置拦截器
2010/01/15 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
python测试驱动开发实例
2014/10/08 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
python实现内存监控系统
2021/03/07 Python
浅谈python常用程序算法
2019/03/22 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
你所在的项目是如何确定版本号的
2015/12/28 面试题
移动通信行业实习自我鉴定
2013/09/28 职场文书
有个性的自我评价范文
2013/11/15 职场文书
应征英语教师求职信
2013/11/27 职场文书
家长对小学生的评语
2014/01/28 职场文书
继承权公证书范本
2015/01/23 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript