Node.js和CommonJs模块化的介绍、引入及使用

本文介绍了CommonJS规范及其在Node.js中的应用,包括模块化的基本概念、核心模块与文件模块的区别,以及自定义模块的创建与暴露方式。通过实际案例展示了模块的普通使用、路径查找机制,包括自动寻找、指定定位等细节。
摘要由CSDN通过智能技术生成

一、概念

1、什么是 CommonJs

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

用CommonJS API编写出的应用 不仅可利用JavaScript来开发客户端应用 还可编写如下应用:

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

简单来说:CommonJs就是模块化的标准 而Nodejs就是CommonJs(模块化)的实现

2、NodeJs中的模块化

在Node中 模块分为两类 一类是Node自己提供的模块 称为核心模块 另一类是用户编写的模块 称为文件模块

  • 核心模块部分在 Node 源代码的编译过程中编译进了二进制执行文件
    在Node进程启动时 部分核心模块就被直接加载进内存中 所以这部分核心模块引入时 文件定位和编译执行这两个步骤可以省略掉
    并且在路径分析中优先判断 因此 它的加载速度是最快的
    如:HTTP 模块 URL 模块 Fs模块
    这些模块都是Nodejs内置的核心模块 可直接引入使用

  • 文件模块则是在运行时动态加载 需要完整的路径分析 文件定位 编译执行过程
    其速度相比核心模块稍微慢一些 但使用场景非常多
    此种模块需自己定义

3、CommonJS(Nodejs)中自定义模块的规定

  • 可将公共的功能抽离成为一个单独的js文件作为一个模块
    默认情况下 这个模块里面的方法或者属性 外界是没法访问的
    若要让外界可以访问模块里面的方法或者属性 则必须在模块里面通过exportsmodule.exports来暴露属性或者方法

  • 在需要使用这些模块的文件中 通过require()方法引入模块
    此时 即可使用模块里暴露的属性和方法了

模块化用到了面向对象的思想 类似于Java中的类的概念


二、案例

1、普通使用

config.js

var msg="This is Config";

// 暴露属性
module.exports=msg;

commonJs1.js

var http=require("http");

// 引入自定义的模块
var msg=require("./config.js") // 指定路径引入

var app=http.createServer(function(req,resp){
   

    resp.writeHead(200,{
   "Content-Type"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值