node.js中的模块化标准CommonJS与自定义模块

 更新时间:2022年06月24日 10:47:53   作者:小旭2021  
这篇文章介绍了node.js中的模块化标准CommonJS与自定义模块,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、 什么是 CommonJs?

JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器。 然而, JavaScript标准定义的 API 是为了构建基于浏览器的应用程序。并没有制定一个用于更广泛的应用程序的标准库。 CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷。 它的终极目标就是: 提供一个类似 Python, Ruby 和 Java 语言的标准库,而不只是停留在小脚本程序的阶段。用 CommonJS API 编写出的应用, 不仅可以利用 JavaScript 开发客户端应用, 而且还可以编写以下应用。

  • 服务器端 JavaScript 应用程序。( nodejs)
  • 命令行工具。
  • 桌面图形界面应用程序。

CommonJS 就是模块化的标准, nodejs 就是 CommonJS( 模块化) 的实现。

二、 Nodejs 中的模块化

Node 应用由模块组成,采用 CommonJS 模块规范。

2.1 在 Node 中,模块分为两类:

一类是 Node 提供的模块,称为核心模块;另一类是用户编写的模块,称为文件模块。

  • 核心模块部分在 Node 源代码的编译过程中,编译进了二进制执行文件。在 Node 进程启动时,部分核心模块就被直接加载进内存中,所以这部分核心模块引入时,文件定位和编译执行这两个步骤可以省略掉,并且在路径分析中优先判断,所以它的加载速度是最快的。如: HTTP 模块 、 URL 模块、 Fs 模块都是 nodejs 内置的核心模块,可以直接引入使用。
  • 文件模块则是在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程、速度相比核心模块稍微慢一些,但是用的非常多。 这些模块需要我们自己定义。 接下来我们看一下 nodejs 中的自定义模块。

2.2 CommonJS( Nodejs) 中自定义模块的规定:

  • 1.我们可以把公共的功能抽离成为一个单独的 js 文件作为一个模块, 默认情况下面这个模块里面的方法或者属性, 外面是没法访问的。如果要让外部可以访问模块里面的方法或者属性, 就必须在模块里面通过 exports 或者 module.exports 暴露属性或者方法。
  • 2. 在需要使用这些模块的文件中, 通过 require 的方式引入这个模块。这个时候就可以使用模块里面暴露的属性和方法。

2.3 定义使用模块:

// 定义一个 tools.js 的模块
//模块定义
var tools = {
sayHello: function() {
return 'hello NodeJS';
},
add: function(x, y) {
return x + y;
}
};
// 模块接口的暴露
// module.exports = tools;
exports.sayHello = tools.sayHello;
exports.add = tools.add;
1
2
3
4
var http = require('http');
// 引入自定义的 tools.js 模块
var tools= require('./tools');
tools.sayHello(); //使用模块

三、 npm init 生成 package.json

npm init --yes

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

相关文章

  • pnpm workspace管理monorepo项目使用过程详解

    pnpm workspace管理monorepo项目使用过程详解

    这篇文章主要为大家介绍了pnpm workspace管理monorepo项目使用过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 使用nodejs+express实现简单的文件上传功能

    使用nodejs+express实现简单的文件上传功能

    这篇文章主要介绍了使用nodejs+express完成简单的文件上传功能,需要的朋友可以参考下
    2017-12-12
  • Windows下安装NodeJS的详细步骤

    Windows下安装NodeJS的详细步骤

    这篇文章主要介绍了Windows下安装NodeJS,本文分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 进阶之初探nodeJS

    进阶之初探nodeJS

    本文主要介绍了nodeJS的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Node搭建https服务器实例详解

    Node搭建https服务器实例详解

    这篇文章主要介绍了Node搭建https服务器的方法,结合实例形式详细分析了创建ssl证书以及node.js调用https模块搭建https服务器的相关操作技巧,需要的朋友可以参考下
    2023-04-04
  • 浅谈nodejs中的类定义和继承的套路

    浅谈nodejs中的类定义和继承的套路

    本篇文章主要介绍了浅谈nodejs中的类定义和继承的套路,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Bun入门学习教程吊打Node或Deno的现代JS运行时

    Bun入门学习教程吊打Node或Deno的现代JS运行时

    这篇文章主要为大家介绍了一款吊打Node或Deno的现代JS运行时,Bun入门学习教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Node.js的Koa框架上手及MySQL操作指南

    Node.js的Koa框架上手及MySQL操作指南

    Node世界中新兴的Koa框架比Express更加轻便,且扩展对数据库操作的支持十分强大,这里我们就来看一下Node.js的Koa框架上手及MySQL操作指南:
    2016-06-06
  • Node.js API详解之 net模块实例分析

    Node.js API详解之 net模块实例分析

    这篇文章主要介绍了Node.js API详解之 net模块,结合实例形式分析了Node.js API中net模块基本函数、用法与使用技巧,需要的朋友可以参考下
    2020-05-05
  • node.js中格式化数字增加千位符的几种方法

    node.js中格式化数字增加千位符的几种方法

    这篇文章主要介绍了node.js中格式化数字增加千位符的几种方法,本文给出3种实现方法,并分别给出实例代码,需要的朋友可以参考下
    2015-07-07

最新评论