【Node.js】ECMAScript標準 以及 npm安裝

目錄

一、 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;會生成一個新的層。層…