当前位置: 首页 > 后端技术 > Node.js

Commonjs规范与模块化

时间:2023-04-03 17:24:12 Node.js

在之前的学习中,我们使用require()来引入我们需要的包。这其实就是模块化。每个模块相互独立,其他模块可以按照一定的方式引入。而这些引入方式都遵循一定的规范,也就是CommonJS规范。1.Commonjs规范目前的JS标准定义的API是为了构建基于浏览器的应用程序,并没有针对更广泛应用的标准库。CommonJS规范致力于提供类似于java、python等语言的标准库,让JS可以开发服务端应用、命令行工具、桌面图形界面应用2.Nodejs中模块化的Node应用由各种模块。采用CommomJS模块规范。一、模块分类Nodejs中的模块分为两大类,一类是Node提供的核心模块;另一个是用户编写的文件模块。核心模块核心模块在编译Node源代码期间被编译成二进制文件。Node进程启动时,会直接将核心模块加载到内存中,因此在导入这些核心模块时,可以省略文件定位和编译执行这两个步骤。并且在路径分析中是先判断的,所以加载速度是最快的。HTTP模块、URL模块、fs模块都是Node内置的核心模块,可以直接引用。文件模块文件模块是运行时动态加载的,需要完整的路径解析、文件定位、编译和执行过程。速度比核心模块稍慢,但是很好用。这些模块需要我们自己定义。让我们来看看自定义模块。2.自定义模块我们将公共函数提取到一个单独的js文件中作为一个模块。默认情况下,外部无法访问该模块中的方法或属性。如果想要外部访问模块中的属性和方法,则必须通过模块中的exports或module.exports暴露需要外部访问的属性和方法。在需要使用这些模块的文件中通过require引入模块。这样就可以使用这个模块暴露的属性和方法了。定义模块,公开属性或方法//tools.jsvartools={name:'Node'sayHello:function(){return'HelloNodeJs';}}//公开属性或方法//module.exports=tools;出口。add=tools.name;exports.sayHello=tools.sayHello;Introducemodulesinotherfiles//引入自定义模块vartools=require('./tools');//使用本模块暴露的方法tools.姓名;//Nodetools.sayHello();//HelloNodeJs3,第三方模块Nodejs也可以使用第三方模块。Nodejs中的第三方模块是由包组成的,包中包含若干个模块。依赖模块统一管理。一个完全符合CommonJs规范的包目录一般包括以下文件:package.json:包描述文件bin:存放可执行二进制文件的目录lib:存放Javascript代码的目录doc:存放文档的目录我们使用npminstallthird-partymodulenpminstallsilly-datetime-Save安装npm后,我们可以使用这个包:varsd=require('silly-datetime');sd.format(newDate(),'YYYY-MM-DD-HH:mm');三、npm1、什么是npm?npm的全称是NodePackageManager,也就是Node.js的包管理器。它可用于在Node.js应用程序中创建、共享和重用模块。模块是可重用代码的库。示例包括用于与数据库交互的模块、支持Web开发的模块以及促进通过Web套接字进行通信的模块。2.使用npm安装模块安装模块有两种方式:本地安装,全局安装本地安装本地安装是指模块会安装在项目中名为node_modules的文件夹中,并且只能在本项目中使用。这是推荐的安装方法。使用以下命令开始安装模块:npminstall[module_name]该命令的意思是向服务器发送请求,将最新版本的模块下载到计算机上。当模块下载成功后,会输出如下语句:module_name@1.2.0./node_modules/module_name这个输出告诉我们模块的名称、版本和下载位置。全局安装全局安装意味着模块可以在系统的任何地方使用。其他与本地安装一致。与本地安装不同的是,全局安装需要加上-g:npminstall[module_name]-g3。使用模块要在Node.js应用程序中使用模块,您必须将它们导入到应用程序中。引入方法如下:varmodule=require('module');我们将它分配给一个变量,以便我们以后可以使用这个模块。4.查找模块文档有时我们需要查看模块文档,可以使用如下命令:npmdocs[module_name]该命令必须在Node.js项目文件夹根目录下运行,模块已经下载到节点模块文件夹。5、使用package.json指定依赖项(dependency)npm允许开发者使用package.json文件指定应用程序中要使用的模块,并用一条命令安装它们:npminstall有以下三个好处:不需要一个接一个地安装模块其他开发人员可以轻松安装您的应用程序应用程序的依赖项存储在一个地方最小的package.json文件如下所示:{"name":"example1","version":"0.0.1","依赖项":{"下划线":"~1.2.1"}}