快速掌握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学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
Dec 16 Javascript
javascript的switch用法注意事项分析
Feb 02 Javascript
实现无刷新联动例子汇总
May 20 Javascript
jquery+css实现的红色线条横向二级菜单效果
Aug 22 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
Jan 17 Javascript
微信小程序实现顶部选项卡(swiper)
Jun 19 Javascript
微信小程序封装多张图片上传api代码实例
Dec 30 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
原生小程序封装跑马灯效果
Oct 21 Javascript
vue.js+element 默认提示中英文操作
Nov 11 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 include_path设置技巧分享
2011/07/03 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
JS 对象介绍
2010/01/20 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
基于Python的接口测试框架实例
2016/11/04 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
《莫高窟》教学反思
2014/02/25 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
大学军训心得体会800字
2016/01/11 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android