三、Node.js模块化基础 2.0

news2025/1/22 13:11:20

         在Node.js中,模块分为核心(原生)模块和文件(自定义)模块,核心模块就是Node.js自带的模块,而自定义模块则是开发者自定义的模块; 

核心模块

        核心模块有 os,fs,path,http等,可以直接拿来用的,核心模块拥有最高加载优先级别, 可以直接通过require()直接引入;


os 模块

const os = require('os');   // 引入os模块
// 主要方法
console.log("主机名:"+os.hostname());
console.log("操作系统名:"+os.platform());
console.log("CPU架构:"+os.arch());
console.log("操作系统运行时间:"+os.uptime());
console.log("返回数组对象,包含CPU内核信息:"+os.cpus());


 url模块

        url.parse(urlString[,parseQueryString[,slashesDenoteHost]]) ,url.parse()将url字符串转为url对象;

  url.formate(urlObject) 就是 和url.parse的一个相反操作;url.formate()将url对象转为url字符串;


Query String模块

         用于实现URL参数字符串与参数对象之间的相互转换;

querystring.stringify(obj[,sep[,eq[,options]]]) 将query对象转为query字符串,

 querystring.parse() 将query字符串转为query对象;

 querystring.escape() 和 querystrng.unescape() 

自定义模块

        核心模块的内容不仅这些,在此举例了一些,大致的来了解Node.js中有哪些模块内容,在后续的内容将分别进行对应模块的讲解,模块分为核心模块和自定义模块,下面来自定义模块(文件模块),在Node.js中所有功能都是以模块的方式存在,一个文件就是一个模块,模块之间相互独立,如一个模块需要使用另外一个模块的功能,则需要引入模块,同时另外一个模块需要将数据内容暴露出来;

引用模块

        引用模块使用require()方法,自定义模块要带路径信息,如绝对路径 ' / ' ,相对 ' ./ ',' ../ '

暴露数据

暴露数据有两种方式:exports 和 module.exports 

(1) exports 

// export.js文件
let name = 'lhxz';
let age = 18;
let introduce = function(){
    console.log('I\'m '+this.name+',I\'m '+this.age);
}

// 暴露数据 - exports.
exports.name = name
exports.age = age
exports.introduce = introduce
// main.js文件
const info = require('./export');
console.log(info);
console.log(info.introduce());

(2)exports.module 

// export.js文件
let name = 'syan123';
let introduce = function(){
    console.log('My name is '+ this.name);
}

// 暴露数据 module.exports=
module.exports = {
    name:name, 
    introduce:introduce
}
// 简写
// 暴露数据 module.exports=
module.exports = {
    name,
    introduce
}
// main.js文件
const info = require('./export');
console.log(info);
console.log(info.introduce());

         exports 是 module对象到属性,可以理解为exports是指向module.exports 的引用;其次module.exports总是优先于exports。


模块案例

         编写一个sortArray模块,该模块可以实现数组排序,从小到大顺序进行排序,在main.js中引用该模块对一个数组进行排序打印;

// sortArray.js文件
function sortArray(arr){
    for(let j =0 ; j < arr.length-1 ; j++){
        for(let i=0 ; i < arr.length - 1 -j ; i++){
            if(arr[i]>arr[i+1]){
                let template = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = template;
            }
        }
    }
    return arr;
}
// 暴露
module.exports = { 
    sortArray
 }
// main.js
const s = require('./sortArray');
// 对以下数据排序
let arrA = [1,51,5,12,0,-10,-8];
let result = s.sortArray(arrA);
console.log(result);

        以上就是了解Node.js中的核心模块有哪些和基本使用,以及自定义模块如何来引用和使用模块;在理解这些内容之后对后续模块的学习和编写会有一定的帮助! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

发送给Java应用程序的所有参数都必须是字符串吗?

问&#xff1a;发送给Java应用程序的所有参数都必须是字符串吗&#xff1f; 答&#xff1a; 应用程序在运行时&#xff0c;Java将所有参数存储为字符串。要使用整型或其他非字符串参数&#xff0c;必须将其进行转换&#xff0c; 问&#xff1a;既然applet是在Web页面中运行&…

大一作业HTML网页作业:中华传统文化题材网页设计5页(纯html+css实现)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

HTML期末作业,基于html实现中国脸谱传统文化网站设计(5个页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Scrapy_redis分布式原理

今天分享一下Scrapy_redis分布式原理&#xff1a; 1 scrapy_redis是什么 Scrapy_redis &#xff1a; Redis-based components for Scrapy. Github地址&#xff1a;<https://github.com/rmax/scrapy-redis> 在这个地址中存在三个demo&#xff0c;后续我们对scrapy_redi…

大学生简单环保环境静态HTML网页设计作品 DIV布局环境介绍网页模板代码 DW学生环境网站制作成品下载 HTML5期末大作业

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

2022_TIP_DSNet

Boosting RGB-D Saliency Detection by Leveraging Unlabeled RGB Images 通过利用未标记的RGB图像来增强rgb-d显着性检测 1. 动机 1) 用于监督学习的像素级注释既昂贵又耗时。 2) 与RGB图像相比&#xff0c;成对的rgb-d图像更难以收集。 2. 解决方法 提出 Dual-Semi RG…

[附源码]Python计算机毕业设计Django景区直通车服务系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

智能人机交互

前言 随着移动机器人越来越多地走向实 际应用&#xff0c;需要提高机器人与人类之 间的协同水平&#xff0c;实现机器人与人类的共融。 一、人机交互的三个级别 二、火星车的遥操作控制 火星车的遥操作控制&#xff08;超大时延&#xff09;&#xff1a;地面团队将命令序列发至…

Linux | 网络概念理解 | 对网络的初识

文章目录重新看待计算机体系结构软件分层的思想网络中的分层协议的理解局域网的理解MAC地址 && IP地址报头的作用端口号&#xff08;port&#xff09;重新看待计算机体系结构 计算机由硬件组成&#xff0c;而不同硬件之间要怎么通信&#xff0c;或者说要怎么进行数据的…

STM32F4的串口烧录问题

前言&#xff1a;以前总是画F1的板子&#xff0c;第一次接触F4的芯片&#xff0c;画板子时串口接在了PB6、PB7上&#xff0c;导致烧录程序、检测芯片失败的情况。其原因是由于F1的USART1对应(PA9\PA10)&#xff0c;而F4的USART1则对应了(PA9\PA10)和(PB6\PB7)。两个对应搞得不知…

linux安装jdk教程(手动安装/yum安装) 保姆级教程

yum安装jdk方式&#xff1a; 1、查询要安装jdk的版本 命令&#xff1a;yum -y list java* 2、选择你需要安装的版本号 命令&#xff1a;yum install -y 你选择的版本号 ​ 3、 查询jdk版本 命令&#xff1a;java -version (有版本证明安装成功了......) 手动安装方式&#…

Kibana:运用 transform 来实现服务质量目标(SLO)的可视化

Kibana 是一个有用的工具&#xff0c;用于监控应用程序和服务以确保它们在指定的服务级别目标内运行。 服务质量指标 (SLI) 是服务的可衡量方面&#xff0c;例如错误代码和延迟。 服务质量目标 (SLO) 定义应用程序或服务预期如何按照 SLI 衡量的方式执行&#xff0c;并在某种程…

《集体智慧编程》笔记(3 / 12):发现群组

Discovering Groups 文章目录监督学习和无监督学习监督学习无监督学习单词向量对博客用户进行分类对订阅源中的单词进行计数分级聚类绘制树状图列聚类K-均值聚类针对偏好的聚类获取数据和准备数据BeautifulSoup收集来自Zebo的结果定义距离度量标准对结果进行聚类以二维形式展现…

二、导论——可解释性机器学习(DataWhale组队学习)

目录引言ZFNet的网络结构可视化反卷积反池化反激活反卷积训练细节特征可视化特征演化特征不变性局部遮挡测试敏感性分析相关性分析消融实验宽度影响深度影响迁移学习能力有效性分析总结引言 纽约大学ZFNet&#xff0c;2013年ImageNet图像分类竞赛冠军模型。对AlexNet进行改进的…

Redis框架(十三):大众点评项目 达人探店 博客功能实现

大众点评项目 达人探店 博客功能实现需求&#xff1a;达人探店 博客功能实现业务实现总结SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节中将会回顾Redis实战项目 大众点评 主要依照以下几个原则 基础实战的Demo和Coding上传到我的代码仓库…

送书福利!全自主IDE的《运动控制系统应用与实践》

功能齐全、稳定性强、简单易用的实时工控软件平台是成就工业控制的重要工具。运动控制作为工业控制领域的核心技术之一&#xff0c;在3C电子、锂电新能源、装配、激光加工、点胶、贴附、工业机器人等工业应用场景中发挥着巨大作用。 正运动技术自主自研的ZDevelop是国内少有的…

腾讯工作3个月,做软件测试的一些感悟

普通二本计算机专业毕业&#xff0c;从毕业后&#xff0c;第一份接触测试的工作是在一家通讯小公司&#xff0c;大部分接触的工作是以功能测试为主&#xff0c;一直都是几千块钱工资&#xff0c;还一度被派出差&#xff0c;以及兼职各种产品、运维、运营的活&#xff0c;感觉自…

基于FPGA的spi通信接口VHDL设计

目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布

Coretex_M0工程创建

本文档介绍如何创建一份基于成熟库函数的新工程&#xff01; 类似于如下的工程: 如上的MCU表示的是NXP公司封装好的关于芯片的库函数&#xff0c;BSP表示的是板级支持开发包&#xff0c;是和具体开发板外设的设备有关。 那么如果我们需要我们的工程包含这样的库函数&#xff0c…

小程序在线生成平台怎么使用?

其实目前小程序在线生成平台是比较主流的&#xff0c;很多小伙伴看到一些制作小程序教学&#xff0c;都会有“这个软件怎么下载&#xff1f;”、“怎么做&#xff1f;”之类的问题。其实小程序在线生成平台一般都不需要下载的&#xff0c;它主要是在网页中打开工具进行在线制作…