快速掌握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 相关文章推荐
JSON 学习之完全手册 图文
May 29 Javascript
JavaScript加密解密7种方法总结分析
Oct 07 Javascript
使用jquery实现select添加实现后台权限添加的效果
May 28 Javascript
JavaScript常用验证函数实例汇总
Nov 25 Javascript
Bootstrap基本组件学习笔记之进度条(15)
Dec 08 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
Dec 28 Javascript
详解require.js配置路径的用法和css的引入
Sep 06 Javascript
简述vue中的config配置
Jan 23 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
Mar 08 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
elementUI select组件使用及注意事项详解
May 29 Javascript
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
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 fsockopen写的HTTP下载的类
2007/02/22 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
php生成curl命令行的方法
2015/12/14 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
详解supervisor使用教程
2017/11/21 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
医院辞职信范文
2014/01/17 职场文书
校运会入场式解说词
2014/02/10 职场文书
个人安全承诺书
2014/05/22 职场文书
服务理念口号
2014/06/11 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
Nginx反向代理至go-fastdfs案例讲解
2021/08/02 Servers