快速掌握Node.js模块封装及使用


Posted in Javascript onMarch 21, 2016

Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用.

一、Node.js模块封装

 1.创建一个名为censorify的文件夹

 2.在censorify下创建3个文件censortext.js、package.json、README.md文件

1)、在censortext.js下输入一个过滤特定单词并用星号代替的函数。

var censoredWorlds=["sad","bad","mad"];
var custormCensoredWords=[];
function censor(inStr)
{
  for(idx in censoredWorlds)
  {
    inStr=inStr.replace(censoredWorlds[idx],"****");
  }
  for(idx in custormCensoredWords)
  {
    inStr=inStr.replace(custormCensoredWords[idx],"****");
  }
  return inStr;
}
 
function addCensoreWorld(world)
{
  custormCensoredWords.push(world);
}
 
function getCensoreWorlds()
{
  return censoredWorlds.concat(custormCensoredWords);
}
exports.censor=censor;
exports.addCensoreWorld=addCensoreWorld;
exports.getCensoreWorlds=getCensoreWorlds;

2)、在package中配置清单信息 例如版本 名称和main指令等。

{
 "author":"cuiyanwei",
 "name":"censority",
 "version":"0.1.1",
 "description":"Censors words out of text",
 "main":"censortext",
 "dependencies":{
  "express":"latest"
 },
 "enginee":{
  "node":"*"
 }
}

3)、创建的README.md文件主要是描述说明

3.使用命令行创建封装模块

使用命令行导航到censorify文件夹下,然后使用命令 npm pack 封装生成tgz文件,这样就封装了一个模块。

快速掌握Node.js模块封装及使用

二、封装模块的使用

封装模块的使用有两种方法 :发布到NPM注册表、本地使用,这里只记录下本地使用的方法.

1.创建名readwords文件夹

2.命令行导航到readwords文件夹下,然后安装已经封装好的模块,如果是已经发布到NPM注册表的直接 npm install 名字,如果是在本地 npm install tgz文件路径。

快速掌握Node.js模块封装及使用

3.安装完成后会在readwords文件夹下生成包含censority子文件夹的node_modules文件夹

快速掌握Node.js模块封装及使用

4.新建readwords.js文件测试(注意代码console、封装模块的函数别写错了)

var censor=require("censority");
console.log(censor.getCensoreWorlds());
console.log(censor.censor("Some very sad,bad and mad text"));
censor.addCensoreWorld("gloomy");
console.log(censor.getCensoreWorlds());
console.log(censor.censor("A very goolmy day."));

5.使用

用命令行node readwords.js来调用readwords.js查看结果

快速掌握Node.js模块封装及使用

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JavaScript函数、方法、对象代码
Oct 29 Javascript
jQuery 打造动态下滑菜单实现说明
Apr 15 Javascript
javascript如何动态加载表格与动态添加表格行
Nov 27 Javascript
Javascript中call与apply的学习笔记
Sep 22 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
Mar 10 Javascript
jquery通过closest选择器修改上级元素的方法
Mar 17 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
Jul 29 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
jquery实现界面无刷新加载登陆注册
Jul 30 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
Aug 14 Javascript
微信公众号H5支付接口调用方法
Jan 10 Javascript
Vue动态组件与异步组件实例详解
Feb 23 Javascript
JS DOM实现鼠标滑动图片效果
Sep 17 #Javascript
实践中学习AngularJS表单
Mar 21 #Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 #Javascript
javascript实现dom元素可拖动
Mar 21 #Javascript
AngularJS 中的指令实践开发指南(一)
Mar 20 #Javascript
浅析AngularJS中的指令
Mar 20 #Javascript
简述Matlab中size()函数的用法
Mar 20 #Javascript
You might like
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
8个必备的PHP功能开发
2015/10/02 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
Python实现Const详解
2015/01/27 Python
python实现dijkstra最短路由算法
2019/01/17 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
在django view中给form传入参数的例子
2019/07/19 Python
python 实现识别图片上的数字
2019/07/30 Python
python单例设计模式实现解析
2020/01/07 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
小学一年级评语大全
2014/04/22 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
社区义诊活动总结
2014/04/30 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
python数字转对应中文的方法总结
2021/08/02 Python