目录

一、 ECMAScript标准 - 默认导出和导入

二、ECMAScript标准 - 命名导出和导入

三、包的概念

五、 npm - 安装所有依赖

六、 npm - 全局软件包

Node.js总结

总结不易~ 本章节对我有很大的收获, 希望对你也是!!!


本节素材已上传至Gitee:ajax_study: 这是ajax、Node.j学习的仓库 - Gitee.comhttps://gitee.com/liu-yihao-hhh/ajax_study/tree/master/nodejs2

一、 ECMAScript标准 - 默认导出和导入

默认标准使用:

  1. 导出: export default {}
  2. 导入:import 变量名 from ‘模块化或路径’

注意:Node.js 默认支持CommonJS标准语法

如需要使用ECMAScript 标准语法 , 在运行模块所在文件夹内创建package.json文件, 并设置{"type", "module"}

在utils.js中进行默认导出

/*** 目标:基于 ECMAScript 标准语法,封装属性和方法并"默认"导出*/
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)// 默认导出
export default {url: baseURL,arraySum: getArraySum
}

在index.js文件中进行默认导入

/*** 目标:基于 ECMAScript 标准语法,"默认"导入,工具属性和方法使用*/
// 默认导入
import obj from './utils.js'
console.log(obj)
const result = obj.arraySum([10, 20, 30])
console.log(result)

二、ECMAScript标准 - 命名导出和导入

需求: 封装并导出基地址和求数组和的函数

命名标准使用:

  1. 导出: export 修饰定义语句
  2. 导入: import { 同名变量 } from '模块名或路径'

utils.js 文件

/*** 目标:基于 ECMAScript 标准语法,封装属性和方法并"命名"导出*/
export const baseURL = 'http://hmajax.itheima.net'
export const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

index.js文件

可以看出当前标准的导入和导出跟我们在vue里面的效果一模一样!还是很好理解的

/*** 目标:基于 ECMAScript 标准语法,"命名"导入,工具属性和方法使用*/
// 命名导入
import {baseURL, getArraySum} from './utils.js'
console.log(obj)
console.log(baseURL)
console.log(getArraySum)
const result = getArraySum([10, 21, 33])
console.log(result)

三、包的概念

包: 将模块、代码、其他资料聚合成一个文件夹

包分类:

  • 项目包: 主要编写项目和业务逻辑
  • 软件包: 封装工具和方法进行使用

在package.json文件中:对项目进行一个描述

{"name": "cz_utils", // 软件包名称"version": "1.0.0", // 软件包当前版本"description": "一个数组和字符串常用工具方法的包", // 软件包简短秒速"main": "index.js", // 软件包入口点"author": "itheima", // 软件包作者"license": "MIT" // 软件包许可证
}

将utils文件包进行打包引入到server.js文件内进行使用

完成打包的效果

server.js文件

/*** 目标:导入 utils 软件包,使用里面封装的工具函数*/
const obj = require('./utils')
console.log(obj)
const result = obj.getArraySum([10, 20, 30])
console.log(result)

四、npm - 软件包管理器

定义: npm是Node.js标准的软件包管理器, 起初是作为下载和管理Node.js 包依赖的方式,现在也成为前端Javascript中的使用工具

使用:

  1. 初始化清单文件: npm init -y 
  2. 下载软件包: npm i 软件包名称
  3. 使用软件包

需求: 使用dayjs 软件包 来格式化日期时间

1. 初始化项目清单文件 生成package.json文件

下载软件包

server.js文件

/*** 目标:使用 npm 下载 dayjs 软件包来格式化日期时间*  1. (可选)初始化项目清单文件,命令:npm init -y*  2. 下载软件包到当前项目,命令:npm i 软件包名称*  3. 使用软件包*/
// 3. 使用软件包
const dayjs = require('dayjs')
const nowDateStr = dayjs().format('YYYY-MM-DD')
console.log(nowDateStr)

可以快速调用,进行日期时间转换

五、 npm - 安装所有依赖

当我们引入别人写的项目,不存在node_modules软件包的时候 是不能在运行的,所以我们为了能够顺利运行,package.json文件中有记录着所有的软件包,只需要node -i 就可以完成所有的安装依赖

六、 npm - 全局软件包

软件包区别:

  • 本地软件包:当前项目内使用,封装属性和方法,存在于 node_modules
  • 全局软件包:本机所有项目使用,封装命令和工具,存在于系统设置的位置

nodemon 作用:替代 node 命令,检测代码更改,自动重启程序

使用:

  1. 安装:npm i nodemon -g(-g 代表安装到全局环境中)
  2. 运行:nodemon 待执行的目标 js 文件:nodemon server.js

需求:启动准备好的项目,修改代码保存后,观察自动重启应用程序

Node.js总结

Node.js 模块化:
概念:每个文件当做一个模块,独立作用域,按需加载
使用:采用特定的标准语法导出和导入进行使用

CommonJS 标准一般应用在 Node.js 项目环境中

ECMAScript 标准一般应用在前端工程化项目中 。

Node.js 包:

概念:把模块文件,代码文件,其他资料聚合成一个文件夹
项目包:编写项目需求和业务逻辑的文件夹
软件包:封装工具和方法进行使用的文件夹(一般使用 npm 管理)

  • √ 本地软件包:作用在当前项目,一般封装的属性 / 方法,供项目调用编写业务需求
  • √ 全局软件包:作用在所有项目,一般封装的命令 / 工具,支撑项目运行

常用命令:

功能命令
执行 js 文件node xxx
初始化 package.jsonnpm init -y
下载本地软件包npm i 软件包名
下载全局软件包npm i 软件包名 -g
删除软件包npm uni 软件包名

总结不易~ 本章节对我有很大的收获, 希望对你也是!!!

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

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

相关文章

NPM 、 NPX

NPM vs. NPX 简单来说,npm 是一个 node 包管理器,npx 是一个 Node 包执行器。 NPX 是一个 Node 包执行器,该 Node 包可以是本地也可以是远程的。允许开发者在无需安装的情况下执行任意 Node 包。npm 在安装nodejs 就自动带了 npm install -g …

守护品质安全,防伪溯源系统打造全链路信任体系

一、引言在当下这个信息透明、品质至上的时代,防伪溯源已经成为众多品牌保护自身利益、提升消费者信任度的重要手段。为了满足市场上对高效、可靠的防伪溯源查询系统的迫切需求,榕壹云精心打造了一款防伪溯源查询系统。二、项目背景随着商品市场的不断扩…

【完整源码+数据集+部署教程】无人机航拍视角洪水检测与受灾房屋识别图像分割救援指导系统源码和数据集:改进yolo11-DCNV2

背景意义 研究背景与意义 随着全球气候变化的加剧,极端天气事件的频率和强度不断上升,洪水作为一种常见的自然灾害,给人类社会带来了严重的威胁。洪水不仅导致人员伤亡和财产损失,还对基础设施和生态环境造成了深远的影响。因此&a…

C# 结构体与类的区别是什么?

结构体是值类型是储存在栈中独立储存的,数据与数据之间不会相互影响,即使将一个结构体赋值给另外一个结构体也不会相互影响。 类是一个模板,实例出来的对象是独立的不会相互影响,但是将一个对象赋值给另一个对象时 会把指向堆内存中数据的指针赋值给另一个对象.从而发生两个变量…

Redis GEO

Redis GEO 引言 Redis 是一款高性能的键值存储系统,广泛应用于缓存、消息队列等领域。Redis GEO 是 Redis 2.4 版本后新增的一个功能,用于存储地理位置信息。本文将详细介绍 Redis GEO 的概念、使用方法以及应用场景。 什么是 Redis GEO? Redis GEO 是 Redis 的一个模块…

Go从入门到精通系列学习路线规划

Go从入门到精通系列学习路线规划 目录导航 Go从入门到精通系列学习路线规划首页说明 第1篇_Go语言初探_环境搭建与HelloWorld 第2篇_Go语言基础语法_变量常量与数据类型 第3篇_Go语言控制结构_条件判断与循环 第4篇_Go语言函数详解 第5篇_Go语言数据结构详解 第6篇_Go语言结构体…

Grid系统概述

目录 概念及功能 网格对象(Grid Object) 和世界对象(World Object) 工作流程 概念及功能 TrinityCore 的 Grid 系统是一套复杂的地图分区管理机制,其核心目标是通过动态管控游戏世界的区域状态和对象生命周期&#…

一文搞懂LLM大模型!LLM从入门到精通万字长文(2024.12月最新)

LLM从入门到精通精品文章 目录 一、LLM基本概念 二、LLM发展历程 三、LLM大模型的分类 四、LLM主流大模型类别 五、LLM大模型建立的流程 六、Fine-Tuning 七、Prompt-Tuning 八、超大规模参数模型Prompt-Tuning方法 8.1上下文学习 In-Context Learning 8.2.指令学习 …

Next.js跟React关系(Next.js是基于React库的全栈框架)(文件系统路由、服务端渲染SSR、静态生成SSG、增量静态再生ISR、API路由)

文章目录**1. React 是基础,Next.js 是扩展****2. Next.js 解决了 React 的哪些痛点?****3. 核心区别****4. Next.js 的核心特性**1. **文件系统路由**2. **服务端渲染(SSR)**3. **静态生成(SSG)**4. **增量…

Nightingale源码Linux进行跨平台编译

最近使用Nightingale 需要实现对服务的监测,想要在Windows 系统中使用,看官方文档中并不直接提供执行程序,原文如下: 准备工作 本地环境 本地已经安装git 本地安装git 便于后续下载源码并进行自动编译。 Linux操作系统环境&…

抽丝剥茧丨PostgreSQL 系国产数据库%SYS CPU newfstatat() high 调优一例(二)

续接上回《PostgreSQL 系国产数据库%SYS CPU newfstatat() high 调优一例(一)》,这个问题还在持续,并且原因并不只是一个,从调了文件系统级atime,到调整wal size减少日志被动清理,还有在验证tem…

【新手入门】Android Studio 项目结构拆解,快速理解文件作用!

目 录 一、【Project】视图下项目结构(真实目录) 二、【Android】视图下项目结构 三、【app/】下重要文件解析 1、 build.gradle 2、AndroidManifest.xml 3、res/ 作为刚刚接触Android开发的小白,使用Android Studio创建项目后&…

Python实现点云Kmeans、欧式和DBSCAN聚类

本节我们分享点云处理中的三种常见聚类方法,分别是K-means、欧氏与 DBSCAN聚类。具体介绍如下:1. K-means 聚类定义:一种基于距离度量的无监督学习算法,将数据划分为 K 个紧凑的簇,使簇内数据相似度高、簇间差异大。算…

【Java后端】MyBatis-Plus 原理解析

MyBatis-Plus 原理解析 其实 MyBatis-Plus 的 Service 层设计就是为了让开发者不用重复写很多样板代码。我们来一点点剖析 UserServiceImpl、IService、UserService、ServiceImpl 之间的关系和调用链。1. 类/接口关系图IService<T>▲│UserService (接口) <-- 自定义…

Nacos 注册中心学习笔记

&#x1f389; Alibaba微服务组件 Nacos 注册中心超详细学习笔记 &#x1f389; &#x1f4cc; 写在前面&#xff1a;本文基于官方PDF文档与实战经验&#xff0c;整理了Nacos注册中心的核心知识点、部署流程与实战技巧&#xff0c;力求图文并茂、通俗易懂&#xff0c;适合收藏反…

java 策略模式 demo

策略模式介绍策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;将每个算法封装起来并使它们可相互替换。策略模式让算法的变化独立于使用算法的客户端&#xff0c;从而实现灵活的算法切换。核心角色&#xff1…

SAP Valuation Category在制造业成本核算中的使用场景与配置方案

Valuation Category在制造业成本核算中的使用场景与配置方案一、核心使用场景&#xff08;制造业特有&#xff09;1. 内制 vs 外购成本分离业务需求&#xff1a;同一物料可能通过内部生产&#xff08;成本含料工费&#xff09;或外部采购&#xff08;成本含采购价运费&#xff…

我的 LeetCode 日记:Day 36 - 动态规划,背包问题的千变万化

昨天&#xff0c;我初步掌握了 0/1 背包问题的理论基础和标准解法。今天&#xff0c;我将这种思想应用到了更广泛的场景中。今天的几道题&#xff0c;乍一看和背包没什么关系&#xff0c;但通过巧妙的数学转化&#xff0c;它们的核心都变成了 0/1 背包问题。 这让我深刻体会到…

本地处理不上传!隐私安全的PDF转换解决方案

PDF能锁定排版、字体、图片位置&#xff0c;无论在什么设备打开都保持一致。它是无广告、简洁高效的专业PDF处理工具。功能丰富&#xff0c;支持批量操作&#xff1a;只需将文件拖入界面&#xff0c;选择目标格式&#xff08;如Word、PPT、Excel、图片等&#xff09;&#xff0…

Docker build创建镜像命令入门教程

一、核心概念Dockerfile 定义镜像构建步骤的文本文件&#xff0c;包含一系列指令和配置&#xff0c;用于自动化创建镜像。镜像层&#xff08;Layer&#xff09; Docker 镜像由多层只读层叠加而成&#xff0c;每个指令&#xff08;如 RUN、COPY&#xff09;会生成一个新的层。层…