Node.js模块封装及使用
Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用.
一、Node.js模块封装
1.创建一个名为censorify的文件夹
2.在censorify下创建3个文件censortext.js、package.json、README.md文件
1)、在censortext.js下输入一个过滤特定单词并用星号代替的函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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指令等。
1 2 3 4 5 6 7 8 9 10 11 12 13 | { "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文件,这样就封装了一个模块。
二、封装模块的使用
封装模块的使用有两种方法 :发布到NPM注册表、本地使用,这里只记录下本地使用的方法.
1.创建名readwords文件夹
2.命令行导航到readwords文件夹下,然后安装已经封装好的模块,如果是已经发布到NPM注册表的直接 npm install 名字,如果是在本地 npm install tgz文件路径。
3.安装完成后会在readwords文件夹下生成包含censority子文件夹的node_modules文件夹
4.新建readwords.js文件测试(注意代码console、封装模块的函数别写错了)
1 2 3 4 5 6 | 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查看结果
---------------我是有底线的--------------------
作者:社会主义接班人
出处:http://www.cnblogs.com/5ishare/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
作者:社会主义接班人
出处:http://www.cnblogs.com/5ishare/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?