目錄
一、 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標準 - 默認導出和導入
默認標準使用:
- 導出: export default {}
- 導入: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標準 - 命名導出和導入
需求: 封裝并導出基地址和求數組和的函數
命名標準使用:
- 導出: export 修飾定義語句
- 導入: 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中的使用工具
使用:
- 初始化清單文件: npm init -y?
- 下載軟件包: npm i 軟件包名稱
- 使用軟件包
需求: 使用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 命令,檢測代碼更改,自動重啟程序
使用:
- 安裝:npm i nodemon -g(-g 代表安裝到全局環境中)
- 運行:nodemon 待執行的目標 js 文件:nodemon server.js
需求:啟動準備好的項目,修改代碼保存后,觀察自動重啟應用程序
Node.js總結
Node.js 模塊化:
概念:每個文件當做一個模塊,獨立作用域,按需加載
使用:采用特定的標準語法導出和導入進行使用
CommonJS 標準一般應用在 Node.js 項目環境中
ECMAScript 標準一般應用在前端工程化項目中 。
Node.js 包:
概念:把模塊文件,代碼文件,其他資料聚合成一個文件夾
項目包:編寫項目需求和業務邏輯的文件夾
軟件包:封裝工具和方法進行使用的文件夾(一般使用 npm 管理)
- √ 本地軟件包:作用在當前項目,一般封裝的屬性 / 方法,供項目調用編寫業務需求
- √ 全局軟件包:作用在所有項目,一般封裝的命令 / 工具,支撐項目運行
常用命令:
功能 | 命令 |
---|---|
執行 js 文件 | node xxx |
初始化 package.json | npm init -y |
下載本地軟件包 | npm i 軟件包名 |
下載全局軟件包 | npm i 軟件包名 -g |
刪除軟件包 | npm uni 軟件包名 |