Node.js模块系统

        大家好呀,今天我们来认识以下Node.js的模块系统。 

模块系统

目录

模块系统

node项目

 创建一个完整的node项目

 模块之间的引用

 模块的导入

 模块的分类

核心模块的引用 

 获取模块的导出对象

 小结


node项目

         一个node项目,单有JS文件是不行的,它还需要第三方包来方便编写者使用(总不可能手搓吧)。因此我们就需要下载一个 node_modules 的文件夹。但是,这个包很大,所有在传输的时候一般不带这个包,传输完成后再重新下载即可。那么,到底哪些包需要下载呢?我们需要用到一个文件 package.json

 创建一个完整的node项目

         接下来我们就来创建一个完整的node项目:

  1. 我们创建一个文件夹,在集成终端打开,npm init -y 进行初始化。(注意不要以中文命名,否则报错)
  2. 这时所创建的文件夹就会出现名为:package.json 的文件,里面是一些信息。

        

     3. 接下来就是引入包,这里我们引入axios包,使用命令:npm install axios 。下载完成后就会出现名为 node_modules 的文件夹了,里面便是我们的包。

        

     4. 这时我们打开 package.json 文件,就会发现我们下载的包已经有记录了。

        

     5. 我们写完在删掉 node_modules 文件之后进行传输,传输完成之后使用命令:npm i 。快速重新下载。

 模块之间的引用

         什么是模块之间的引用呢,其实就是文件之间的互相引用,我们把分散的一个一个文件叫做模块。下次我们已经对导入导出进行简要的介绍,那么这里就来详细的进行说明:

 模块的导入
  1.  我们首先创建名为 index.js 的文件,node会直接进入名为 index.js 的文件,若是没有这个文件直接使用 node [文件夹] 的命令,报错。再随意创建 01-test.js02-test.js 两个JS文件。
  2. 这里我们先使用require引入文件,之后对require进行解释。
require('./01-test.js')
     3. 我们在两个 JS文件中用 log 随意打印一段话,之后使用 node index 命令查看是否引入成功。
 模块的分类

        在说明模块的导出之前,我们先来学习模块的分类。  

        模块分为两类,一类是核心模块,他是node自带的模块,其包含http,url,fs等二进制执行文件。

        一类是文件模块,文件模块又分为两类,自己写的和第三方模块例如 node_modules

核心模块的引用 

        核心模块的引入和第三方模块的引入一致,这里我们先在index中引入axios第三方模块。  

require('axios')

        核心模块的引用方式与第三方模块一致。

require('http')

        自己写的模块就与 01-test.js 文件的引入一致,需要绝对路径和相对路径。

 获取模块的导出对象

        那么我们应该如何获取模块导出的数据呢?我们可以先进行尝试,我们直接用一个对象obj去接受它,进行打印,查看它返回的是什么。

const obj = require('./01-test.js')​console.log(obj);

         

        很明显,它返回了一个对象,那么,我们应该如何导出数据呢?这时就需要用到:module

        我们在 01-test.js 中定义一个变量,并把变量放进 module.exports 即可。

let a = '数据'
//导出
module.exports = {a
}

        我们使用 node index 命令:

        上述的导出行为使用exports也可以,但是小编推荐就使用module.exports,以免混淆,这里小编不过多介绍。

 小结

         说实话,node的学习挺无聊的,它只是在与vue框架搭建的时候会有那么一点有趣,大家只需要下载好node.js。学会操作终端,在前端进行搭建的时候会使用就可以了。好了,我们下次核心模块见。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统中的进程查看与进程调度

一.进程查看 什么是进程? 进程 process 计算机执行任务的最小单位,在计算机上运行一个应用软件可能会产生多个进程, 二.进程查看——ps -aux ps命令查看进程 如上图所示,是ps命令加上aux选项产生的结果,其作用是…

数字芯片中I/O单元及电源domain布局中SIPI的考虑

芯片设计的物理实施过程通常也简称为布局布线(P&R,Place-and-Route),布局一般被分为布局规划(Floorplan)和标准单元摆放(Place)两个过程。而其中的布局规划是芯片后端物理实现过…

大模型的实践应用28-基于ChatGLM大模型搭建智能自助用药问答系统、药物智能管理系统的应用详解

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用28-基于ChatGLM大模型搭建智能自助用药问答系统、药物智能管理系统的应用详解。 随着人工智能技术的发展,我们的生活在许多方面都得到了改善。本文将介绍如何利用现有的大模型(如:ChatGLM2-6b,百川,通义千问)构建一…

Golang | Leetcode Golang题解之第385题迷你语法分析器

题目: 题解: func deserialize(s string) *NestedInteger {index : 0var dfs func() *NestedIntegerdfs func() *NestedInteger {ni : &NestedInteger{}if s[index] [ {indexfor s[index] ! ] {ni.Add(*dfs())if s[index] , {index}}indexreturn…

Linux【6】系统

时间日期 date日期 cal——当月日历 cal -y 今年的日历 磁盘占用df du df 剩余空间 du 目录下的文件大小 进程ps ps aux a——其他用户 u——详细状态 x——没有控制终端 只看CPU占用高的进程top kill pid代号 ——杀死程序 通配符(简略版) …

conda create创建失败

如图一样,每次创建环境都显示连接不上,换了各种源各种方法都不行,最后把.condarc给删掉就能正常下载了,我类目了

Tekton简介,安装和构建最简单ci/cd

简介 Tekton是一种基于k8的支持CI/CD的operator。 说到持续集成,我们比较熟悉的有jenkins,gitlab ci等,但只有Tekton是云原生的。 既然Tekton是一种operator,那就必须了解它的CRD,然后我们定义CR,让Tekt…

如何使用Jmeter关联influxDB?

一、添加"添加后端监听器" 二、后端监听器实现选择,"org. apache. jmeter. visualizers. backend. influxdb.InfluxdbBackendlistenerClient" 三、修改"influxdbUrl:自己的主机、application:取一个项目名" 四、influxDB&…

AGV/AMR移动机器人产业链全景图(二),应用场景及嵌入式控制器主板案例分析

AGV/AMR移动机器人的下游应用场景 物流行业:物流行业是AGV应用最为广泛的领域之一。随着电子商务的兴起和物流业的快速发展,仓库管理、货物分拣和配送等环节的自动化需求日益增长。AGV通过自主导航和智能调度,实现了货物的快速、准确搬运&am…

数据分析-11-时间序列分析的概念任务和主要方法

1 时间序列 1.1 时间序列的定义 时间序列,通俗的字面含义为一系列历史时间的序列集合。比如2013年到2022年我国全国总人口数依次记录下来,就构成了一个序列长度为10的时间序列。 结合上图理解随机变量和观测值的关系。 我们认为每个时间点发生的数据都来自于一个分布的,…

2024国赛数学建模备赛|30种常用的算法模型之最优算法-非线性规划

1.1 非线性规划的实例与定义 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有 单纯形法这一通用方法,非线性规划目前还没…

并发工具类(一):CountDownLatch

1、CountDownLatch介绍 CountDownLatch 又称为“倒计数门阀”,但大多数称之为“计数器”,是juc包下的一个工具类; CountDownLatch 核心功能是:用于一个活多个线程等待其他线程执行完成的一组操作。 CountDownLatch 中有个全局的计…

【Blender】快捷键_ 学习日志_01

【Blender】快捷键_ 学习日志_01 学习了blender的快捷键的使用。 2024年8月30日 视角操控 围绕中心旋转:按住鼠标中建 平移视角:Shift鼠标中键 视角前进后退:滚动滚轮 视图切换 0 切换到摄像机视图 1 切换正试图 2,4&…

产值8111亿!从《中国地理信息产业发展报告2024》看产业链上的就业蓝海

中国地理信息产业协会28日发布《中国地理信息产业发展报告2024》,报告显示2023年我国地理信息产业总产值达到8111亿元,同比增长4.2%,初步形成了完整的地理信息产业链。 《中国地理信息产业发展报告2024》显示,2023年以来&#xf…

倍福EL6751快速配置CANopen伺服

EL6751快速配置CANopen伺服 使用倍福EL6751快速配置方法,不要求提供从站的eds文件,但是需要提供从站的使用手册和通讯手册,用来查阅从站的PDO配置信息,这些配置参数会使用如下方法通过EL6751写入到从站中。 建立通用CANopen节点…

开源通用验证码识别OCR —— DdddOcr 源码赏析(二)

文章目录 前言DdddOcr分类识别调用识别功能classification 函数源码classification 函数源码解读1. 分类功能不支持目标检测2. 转换为Image对象3. 根据模型配置调整图片尺寸和色彩模式4. 图像数据转换为浮点数据并归一化5. 图像数据预处理6. 运行模型,返回预测结果 …

使用seamless-scroll-v3 实现无缝滚动,自动轮播平滑的滚动效果

安装&#xff1a;npm地址&#xff1a;https://www.npmjs.com/package/seamless-scroll-v3 yarn add seamless-scroll-v3# 或者使用 npm npm install seamless-scroll-v3# 或者使用 pnpm pnpm add seamless-scroll-v3 实现效果&#xff1a; template中的代码&#xff1a; <…

陷抄袭风波 《黑神话:悟空》该如何应对

都说人红是非多&#xff0c;国产首部3A游戏《黑神话&#xff1a;悟空》在爆火的同时&#xff0c;一些问题也随之出现。一方面《黑神话&#xff1a;悟空》陷入抄袭风波&#xff1f;另一方面该游戏也被很多黑灰产盯上了。 8月23日&#xff0c;“塞上李云中”发布微博&#xff0c;…

做为一名研发人员,你是如何看待项目管理软件这种产品的?

我认为项目管理软件是现代软件开发和项目管理中不可或缺的工具。它能够提高项目管理的效率和准确性&#xff0c;降低项目失败的风险&#xff0c;并为团队带来显著的价值。然而&#xff0c;在选择和使用项目管理软件时&#xff0c;团队需要综合考虑多个因素&#xff0c;以确保选…

hiprint打印/jsPDF使用/html2canvas

最初我知道hiprint.print是可以打印双模板的&#xff0c;于是查看hiprint.print的源码发现底层实现是this.getHtml(t).hiwprint,于是断点查看getHtm的实现&#xff0c;得知它是遍历我们对print传参的list&#xff0c;利用list中模板对象的getHtml()方法得到模板的dom对象&#…