国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm

這篇具有很好參考價(jià)值的文章主要介紹了Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Node.js

教學(xué)視頻 BV1MN411y7pw , P83-97的筆記

一、定義

Node.js是一個(gè)跨平臺(tái)JavaScript運(yùn)行環(huán)境,使開(kāi)發(fā)者可以搭建服務(wù)器端的JavaScript應(yīng)用程序。

作用:使用 Node.js 編寫(xiě)服務(wù)器端程序

? 編寫(xiě)數(shù)據(jù)接口,提供網(wǎng)頁(yè)資源瀏覽功能等等

? 前端工程化:為后續(xù)學(xué)習(xí) Vue 和 React 等框架做鋪墊

1.前端工程化

前端工程化:開(kāi)發(fā)項(xiàng)目直到上線,過(guò)程中集成的所有工具和技術(shù)

Node.js 是前端工程化的基礎(chǔ)(因?yàn)?Node.js 可以主動(dòng)讀取前端代碼內(nèi)容)
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

2.Node.js 為何能執(zhí)行 JS?

首先:瀏覽器能執(zhí)行 JS 代碼,依靠的是內(nèi)核中的 V8 引擎(C++ 程序)

其次:Node.js 是基于 Chrome V8 引擎進(jìn)行封裝(運(yùn)行環(huán)境)

區(qū)別:都支持 ECMAScript 標(biāo)準(zhǔn)語(yǔ)法,Node.js 有獨(dú)立的 API

注意:Node.js 環(huán)境沒(méi)有 DOM 和 BOM 等
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

3.安裝nodejs、刪除之前的nodejs

因?yàn)橹坝邪惭b過(guò)一次nodejs,但是忘記放在哪里了,

a later version of node.js is already installed.

https://www.cnblogs.com/fighxp/p/7410235.html

https://blog.51cto.com/teayear/9559527

備注一下,我這次裝在了D:\nodejs
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

4.使用 Node.js

需求:新建 JS 文件,并編寫(xiě)代碼后,在 node 環(huán)境下執(zhí)行

命令:在 VSCode 集成終端中,輸入node xxx.js,回車即可執(zhí)行

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

總結(jié):
1. Node.js 是什么?
? 基于 Chrome 的 V8 引擎封裝,獨(dú)立執(zhí)行 JavaScript 代碼的環(huán)境

2. Node.js 與瀏覽器環(huán)境的 JS 最大區(qū)別?
? Node.js 環(huán)境中沒(méi)有 BOM 和 DOM

3. Node.js 有什么用?
? 編寫(xiě)后端程序:提供數(shù)據(jù)和網(wǎng)頁(yè)資源等
? 前端工程化:集成各種開(kāi)發(fā)中使用的工具和技術(shù)

4. Node.js 如何執(zhí)行代碼?
? 在 VSCode 終端中輸入:node xxx.js 回車即可執(zhí)行(注意路徑)

二、fs模塊 - 讀寫(xiě)文件

模塊:類似插件,封裝了方法/屬性

fs 模塊:封裝了與本機(jī)文件系統(tǒng)進(jìn)行交互的,方法/屬性

語(yǔ)法:

  1. 加載 fs 模塊對(duì)象
  2. 寫(xiě)入文件內(nèi)容
  3. 讀取文件內(nèi)容

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

 const f = require('fs')
 // 寫(xiě)
 f.writeFile('./02test.txt','hello,node.js',err => {
  if (err) {
    console.log(err);
  } else {
    console.log('寫(xiě)入成功');
  }
 })

// 讀
f.readFile('./02test.txt',(err, data) => {
  if(err) console.log(err);
  else {
    console.log(data); // 68 65 6c 6c 6f 2c 6e 6f 64 65 2e 6a 73>
    // data是文件內(nèi)容的 Buffer數(shù)據(jù)流 (是字符串在 計(jì)算機(jī)中保存的二進(jìn)制數(shù)據(jù) 轉(zhuǎn)換成的十六進(jìn)制數(shù)據(jù))
    console.log(data.toString()); // hello,node.js
  } 
})

三、path 模塊

問(wèn)題:Node.js 代碼中,相對(duì)路徑是根據(jù)終端所在路徑來(lái)查找的,可能無(wú)法找到你想要的文件。

建議:在 Node.js 代碼中,使用絕對(duì)路徑

補(bǔ)充知識(shí)點(diǎn):__dirname 內(nèi)置變量(獲取當(dāng)前模塊目錄的絕對(duì)路徑)

  • 例子:

? windows: D:\備課代碼\3-B站課程\03_Node.js與Webpack\03-code\03

? mac: /Users/xxx/Desktop/備課代碼/3-B站課程/03_Node.js與Webpack/03-code/03

mac 和 windows 的區(qū)別在于 分隔符 一個(gè)是\ 一個(gè)是/

注意:path.join() 會(huì)使用特定于平臺(tái)的分隔符,作為定界符,將所有給定的路徑片段連接在一起。

path.join('03', 'dist/js', 'index.js')
// windows: '03\dist\js\index.js'
// mac:      '03/dist/js/index.js'

語(yǔ)法
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

path用于解決,代碼中的相對(duì)路徑和調(diào)試終端的所在文件夾 不同的問(wèn)題。

調(diào)用path.join()配合__dirname組成的目標(biāo)文件的絕對(duì)路徑。

  • 案例:

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

修改后:

const path = require('path')
console.log(__dirname);

const f = require('fs')
f.writeFile(path.join(__dirname,'./03test.txt'),'444444',err => {
 if (err) {
   console.log(err);
 } else {
   console.log('寫(xiě)入成功');
 }
})

案例 - 壓縮前端html

需求:把 回車符(\r)和換行符(\n)去掉后,寫(xiě)入到新 html 文件中

步驟:

  1. 讀取源 html 文件內(nèi)容
  2. 正則替換字符串
  3. 寫(xiě)入到新的 html 文件中

V:\Web\mycode\nodejs\04 compress_html\public\index.html

/**
 * 目標(biāo)1:壓縮 html 代碼
 * 需求:把回車符 \r,換行符 \n 去掉,寫(xiě)入到新 html 文件中
 *  1.1 讀取源 html 文件內(nèi)容
 *  1.2 正則替換字符串
 *  1.3 寫(xiě)入到新的 html 文件中
 */
// 1.1 讀取源 html 文件內(nèi)容
const fs = require('fs')
const path = require('path')
fs.readFile(path.join(__dirname, 'public/index.html'), (err, data) => {
  if (err) console.log(err)
  else {
    const htmlStr = data.toString()
    // 1.2 正則替換字符串
    const resultStr = htmlStr.replace(/[\r\n]/g, '')
    console.log(resultStr)
    // 1.3 寫(xiě)入到新的 html 文件中
    fs.writeFile(path.join(__dirname, 'dist/index.html'), resultStr, err => {
      if (err) console.log(err)
      else console.log('寫(xiě)入成功')
    })
  }
})

四、HTTP相關(guān)

URL中的端口號(hào)

URL:統(tǒng)一資源定位符,簡(jiǎn)稱網(wǎng)址,用于訪問(wèn)服務(wù)器里的資源

端口號(hào):標(biāo)記服務(wù)器里不同功能的服務(wù)程序

端口號(hào)范圍:0-65535 之間的任意整數(shù)
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

注意:http 協(xié)議,默認(rèn)訪問(wèn) 80 端口。所以可以省略。

常見(jiàn)的服務(wù)程序

服務(wù)器中常見(jiàn)的服務(wù)程序-Web 服務(wù)程序:用于提供網(wǎng)上信息瀏覽功能

注意:0-1023 和一些特定端口號(hào)被占用,我們自己編寫(xiě)服務(wù)程序請(qǐng)避開(kāi)使用

1. 端口號(hào)的作用?
? 標(biāo)記區(qū)分服務(wù)器里不同的服務(wù)程序
2. 什么是 Web 服務(wù)程序?
? 提供網(wǎng)上信息瀏覽的程序代碼

http 模塊-創(chuàng)建 Web 服務(wù)

使用nodejs提供的http模塊,創(chuàng)建 Web 服務(wù)

需求:創(chuàng)建 Web 服務(wù)并響應(yīng)內(nèi)容給瀏覽器

步驟:

  1. 加載 http 模塊,創(chuàng)建 Web 服務(wù)對(duì)象

  2. 監(jiān)聽(tīng) request 請(qǐng)求事件,設(shè)置響應(yīng)頭和響應(yīng)體

    server.on(‘request’, (req, res) =>{ // 略})

    • req,request 意為請(qǐng)求. 是對(duì)請(qǐng)求報(bào)文的封裝對(duì)象, 通過(guò) request 對(duì)象可以獲得請(qǐng)求報(bào)文的數(shù)據(jù)
    • res,response 意為響應(yīng). 是對(duì)響應(yīng)報(bào)文的封裝對(duì)象, 通過(guò) response 對(duì)象可以設(shè)置響應(yīng)報(bào)文
  3. 配置端口號(hào)并啟動(dòng) Web 服務(wù)(一個(gè)web服務(wù)程序?qū)?yīng)一個(gè)端口號(hào))

  4. 瀏覽器請(qǐng)求 http://localhost:3000 測(cè)試

(localhost:固定代表本機(jī)的域名)

// 1. 加載 http 模塊,創(chuàng)建 Web 服務(wù)對(duì)象
const h = require('http')
const server = h.createServer()

// 2. 監(jiān)聽(tīng) request 請(qǐng)求事件,設(shè)置響應(yīng)頭和響應(yīng)體
server.on('request', (req, res) => {
  // 設(shè)置響應(yīng)頭: 內(nèi)容類型 普通文本以及中文編碼格式
  res.setHeader('Content-Type', 'text/plain; charset=utf-8')
  // 設(shè)置響應(yīng)體內(nèi)容,結(jié)束本次請(qǐng)求與響應(yīng)
  res.end('歡迎使用node.js和http模塊創(chuàng)建的web服務(wù)')
})

// 3. 配置端口號(hào)并啟動(dòng) Web 服務(wù)(一個(gè)web服務(wù)程序?qū)?yīng)一個(gè)端口號(hào))
server.listen(3000, () => {
  console.log('web服務(wù)啟動(dòng)成功');
})

// 4. 瀏覽器請(qǐng)求 http://localhost:3000 測(cè)試

在瀏覽器網(wǎng)址欄輸入 http://localhost:3000后:
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

案例:瀏覽時(shí)鐘

需求:基于 Web 服務(wù),開(kāi)發(fā)提供網(wǎng)頁(yè)資源的功能

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

const fs = require('fs')
const path = require('path')

// 基于http模塊
const http = require('http');
// 創(chuàng)建服務(wù)器
const server = http.createServer()


// 服務(wù)器監(jiān)聽(tīng)有沒(méi)有請(qǐng)求
// req,request 意為請(qǐng)求. 是對(duì)請(qǐng)求報(bào)文的封裝對(duì)象, 通過(guò) request 對(duì)象可以獲得請(qǐng)求報(bào)文的數(shù)據(jù)
// res,response 意為響應(yīng). 是對(duì)響應(yīng)報(bào)文的封裝對(duì)象, 通過(guò) response 對(duì)象可以設(shè)置響應(yīng)報(bào)文
server.on('request', (req, res) => {
  if(req.url === '/index.html') {
    // 返回該網(wǎng)址
    fs.readFile(path.join(__dirname, 'dist/index.html'), (err,data) =>{
      if(err) console.log(err);
      else {
        res.setHeader('Content-Type', 'text/html; charset=utf-8')
        res.end(data.toString())
      }
    })
  } else {
    res.setHeader('Content-Type', 'text/html;charset=utf-8')
    res.end('not found')
  }
})

// 配置端口號(hào)并啟動(dòng) Web 服務(wù)
server.listen(8080, () => {
  console.log('web 服務(wù)器啟動(dòng)');
})

五、模塊化

在Node.js 中,每個(gè)文件都被視為一個(gè)單獨(dú)的模塊。

概念:項(xiàng)目是由很多個(gè)模塊文件組成的。 一個(gè)文件就是一個(gè)模塊。

好處:提高代碼復(fù)用性,按需加載,獨(dú)立作用域

使用:需要標(biāo)準(zhǔn)語(yǔ)法 導(dǎo)出和導(dǎo)入進(jìn)行使用。標(biāo)準(zhǔn)語(yǔ)法有 CommonJS 、ECMAScript

1.CommonJS 模塊標(biāo)準(zhǔn)

CommonJS 模塊是為Nodejs打包 JavaScript 代碼的原始方式。Node.js 還支持瀏覽器和其他JavaScript運(yùn)行使用的ECMAScript模塊標(biāo)準(zhǔn)

使用:

? 1、導(dǎo)出:module.exports = {}

2、導(dǎo)入:require(‘模塊名或路徑’)

模塊名或路徑:

? ? 內(nèi)置模塊:直接寫(xiě)名字(例如:fs,path,http)

? ? 自定義模塊:寫(xiě)模塊文件路徑(例如:./utils.js)

  • 示例

需求:定義 utils.js 模塊,封裝基地址和求數(shù)組總和的函數(shù)
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

V:\Web\mycode\nodejs\07 modularity_CommonJS\index.js

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

utils.js:

const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

// const getArraySum2 =  function (arr) {
//   return arr.reduce((sum,item) => sum + item ,0)
// }

// 導(dǎo)出
module.exports = {
  url: baseURL,
  arraySum: getArraySum
}

index.js:

const obj = require('./utils.js')
console.log(obj.url);
console.log(obj.arraySum([1,2,4]));
總結(jié):
1. Node.js 中什么是模塊化?
? 每個(gè)文件都是獨(dú)立的模塊
2. 模塊之間如何聯(lián)系呢?
? 使用特定語(yǔ)法,導(dǎo)出和導(dǎo)入使用
3. CommonJS 標(biāo)準(zhǔn)規(guī)定如何導(dǎo)出和導(dǎo)入模塊呢?
? 導(dǎo)出:module.exports = {}
? 導(dǎo)入:require('模塊名或路徑')
4. 模塊名/路徑如何選擇?
? 內(nèi)置模塊,直接寫(xiě)名字。例如:fs,path,http等
? 自定義模塊,寫(xiě)模塊文件路徑。例如:./utils.js

2.ECMAScript 模塊標(biāo)準(zhǔn)

2.1 默認(rèn)導(dǎo)出和導(dǎo)入

默認(rèn)標(biāo)準(zhǔn)使用:

? 1、導(dǎo)出:export default {}

? 2、導(dǎo)入:import 變量名 from ‘模塊名或路徑’

注意:Node.js 默認(rèn)支持 CommonJS 標(biāo)準(zhǔn)語(yǔ)法。如需使用 ECMAScript 標(biāo)準(zhǔn)語(yǔ)法,在運(yùn)行模塊所在文件夾新建 package.json 文件,并設(shè)置 { “type” : “module” }

  • 示例
    Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

V:\Web\mycode\nodejs\08 modularity_ECMAScript_default export\index.js

index.js是運(yùn)行模塊,要在index.js所在的文件夾中 創(chuàng)建一個(gè) package.json

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

utils.js

const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)


// 導(dǎo)出
export default {
  url: baseURL,
  arraySum: getArraySum
}

index.js

import obj from './utils'
console.log(obj);

package.json

{
  "type" : "module"
}

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

總結(jié)
1. ECMAScript 標(biāo)準(zhǔn)規(guī)定如何默認(rèn)導(dǎo)出和導(dǎo)入模塊呢?
? 導(dǎo)出:export default {}
? 導(dǎo)入:import 變量名 from '模塊名或路徑'
2. 如何讓 Node.js 切換模塊標(biāo)準(zhǔn)為 ECMAScript?
? 運(yùn)行模塊所在文件夾,新建 package.json 并設(shè)置
? { "type" : "module" }
2.2 命名導(dǎo)出和導(dǎo)入

命名標(biāo)準(zhǔn)使用:

? 1、導(dǎo)出:export 修飾定義語(yǔ)句

? 2、導(dǎo)入:import { 同名變量 } from '模塊名或路徑‘

如何選擇是默認(rèn)導(dǎo)入導(dǎo)出還是命名導(dǎo)入導(dǎo)出?

? 按需加載,使用命名導(dǎo)出和導(dǎo)入

? 全部加載,使用默認(rèn)導(dǎo)出和導(dǎo)入

? 二者可以同時(shí)用
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

  • 示例

utils.js

// 導(dǎo)出
export const baseURL = 'http://hmajax.itheima.net'
export const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

index.js

// 默認(rèn)導(dǎo)入導(dǎo)出
import {baseURL, getArraySum} from './utils.js'
console.log(baseURL);
console.log(getArraySum([1,2,5]));

package.json

{ "type" : "module" }

本節(jié)總結(jié)

1. Node.js 支持哪 2 種模塊化標(biāo)準(zhǔn)?
? CommonJS 標(biāo)準(zhǔn)語(yǔ)法(默認(rèn))
? ECMAScript 標(biāo)準(zhǔn)語(yǔ)法
2. ECMAScript 標(biāo)準(zhǔn),命名導(dǎo)出和導(dǎo)入的語(yǔ)法?
? 導(dǎo)出:export 修飾定義的語(yǔ)句
? 導(dǎo)入:import { 同名變量 } from '模塊名或路徑‘
3. ECMAScript 標(biāo)準(zhǔn),默認(rèn)導(dǎo)出和導(dǎo)入的語(yǔ)法?
? 導(dǎo)出:export default {}
? 導(dǎo)入:import 變量名 from '模塊名或路徑'

六、包

1.包

包:將模塊,代碼,其他資料聚合成一個(gè)文件夾

包分類:

? 項(xiàng)目包:主要用于編寫(xiě)項(xiàng)目和業(yè)務(wù)邏輯

? 軟件包:封裝工具和方法進(jìn)行使用

要求:根目錄中,必須有 package.json 文件(記錄包的清單信息)

  • 示例:package.json

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

注意:導(dǎo)入軟件包時(shí),默認(rèn)引入該包中的 index.js 模塊文件 。如果沒(méi)有找到,就引入package.json文件中 main 屬性指定的模塊文件。

  • 案例

需求:封裝數(shù)組求和函數(shù)的模塊,判斷用戶名和密碼長(zhǎng)度函數(shù)的模塊,形成成一個(gè)軟件包

V:\Web\mycode\nodejs\10 package\server.js

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

總結(jié)

1. 什么是包?
? 將模塊,代碼,其他資料聚合成的文件夾
2. 包分為哪 2 類呢?
? 項(xiàng)目包:編寫(xiě)項(xiàng)目代碼的文件夾
? 軟件包:封裝工具和方法供開(kāi)發(fā)者使用
3. package.json 文件的作用?
? 記錄軟件包的名字,作者,入口文件等信息
4. 導(dǎo)入一個(gè)包文件夾的時(shí)候,導(dǎo)入的是哪個(gè)文件?
? 默認(rèn) index.js 文件,package.json文件中 main 屬性指定的文件

文件 —— 模塊
文件夾 —— 包

2.npm

npm - 軟件包管理器

npm是Node.js標(biāo)準(zhǔn)的軟件包管理器。

它起初是作為下載和管理Node.js包依賴的方式(下載和管理Node.js中需要的軟件包),但其現(xiàn)在也已成為前端JavaScript中使用的工具。

使用:

  1. 初始化清單文件 :npm init -y(得到 package.json 文件,用于記錄當(dāng)前項(xiàng)目下載過(guò)哪些軟件包,有則略過(guò)此命令)

  2. 下載軟件包 :npm i 軟件包名稱

  3. 使用軟件包

  • 示例: 需求:使用 dayjs 軟件包,來(lái)格式化日期時(shí)間

① 創(chuàng)建一個(gè)項(xiàng)目文件夾

② 初始化清單文件 :npm init -y ,得到 package.json 文件,用于記錄當(dāng)前項(xiàng)目下載過(guò)哪些軟件包

③ npm i dayjs 命令, 從npm資源庫(kù)中下載該軟件包到當(dāng)前項(xiàng)目文件夾中的node_modules文件夾中。(1) 同時(shí)npm會(huì)記錄dayjs包的名字、版本號(hào) 到 package.json 文件中(具體是dependencies選項(xiàng)里)(2)還會(huì)生成一個(gè)package-lock.json文件,主要作用是固化下載的軟件包對(duì)應(yīng)的版本號(hào)。(固化原因:開(kāi)發(fā)項(xiàng)目的過(guò)程中如果修改這個(gè)軟件包,使用過(guò)的方法會(huì)有問(wèn)題,為了保證當(dāng)前項(xiàng)目可以正常運(yùn)行)

④自己的項(xiàng)目文件中導(dǎo)入dayjs包 并引用方法

流程圖:
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

  • 案例

V:\Web\mycode\nodejs\11 npm_use\server.js

總結(jié)

1. npm 軟件包管理器作用?
? 下載軟件包以及管理版本
2. 初始化項(xiàng)目清單文件 package.json 命令?
? npm init -y
3. 下載軟件包的命令?
? npm i 軟件包名字
4. 下載的包會(huì)存放在哪里?
? 當(dāng)前項(xiàng)目下的 node_modules 中,并記錄在 package.json 中
npm - 安裝所有依賴

從網(wǎng)上找到的代碼 少了 node_modules文件夾

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

項(xiàng)目中不包含 node_modules,不能正常運(yùn)行。因?yàn)槿鄙僖蕾嚨谋镜剀浖?/p>

為什么別人不把node_modules傳遞給我們呢?因?yàn)?,自己?npm 下載依賴比磁盤傳遞拷貝要快得多。

解決:項(xiàng)目終端輸入命令:【npm i】 (注意下載路徑要對(duì))

下載 package.json 中記錄的所有軟件包

BV1MN411y7 , P95

總結(jié)
1. 當(dāng)項(xiàng)目中只有 package.json 沒(méi)有 node_modules 怎么辦?
? 當(dāng)前項(xiàng)目下,執(zhí)行 npm i 安裝所有依賴軟件包
2. 為什么 node_modules 不進(jìn)行傳遞?
? 因?yàn)橛?npm 下載比磁盤傳遞要快
npm - 全局軟件包 nodemon

BV1MN411y7pw, P96

軟件包區(qū)別:

? 本地軟件包:當(dāng)前項(xiàng)目內(nèi)使用,封裝屬性和方法,存在于 node_modules

? 全局軟件包:本機(jī)所有項(xiàng)目使用,封裝命令和工具,存在于系統(tǒng)設(shè)置的位置

nodemon 作用:替代 node 命令,檢測(cè)我們編寫(xiě)的代碼是否發(fā)生更改,然后自動(dòng)重啟程序

使用nodemon:

  1. 安裝:npm i nodemon -g(-g 代表安裝到全局環(huán)境中,因此下載的時(shí)候終端路徑是什么都可以)
  2. 運(yùn)行:nodemon 待執(zhí)行的目標(biāo) js 文件
總結(jié)
1. 本地軟件包和全局軟件包區(qū)別?
? 本地軟件包,作用在當(dāng)前項(xiàng)目,封裝屬性和方法
? 全局軟件包,本機(jī)所有項(xiàng)目使用,封裝命令和工具
2. nodemon 作用?
? 替代 node 命令,檢測(cè)代碼更改,自動(dòng)重啟程序
3. nodemon 怎么用?
? 先確保安裝 npm i nodemon -g
? 使用 nodemon 執(zhí)行目標(biāo) js 文件

七、Node.js總結(jié)

1.Node.js 模塊化:

概念:每個(gè)文件當(dāng)做一個(gè)模塊,獨(dú)立作用域,按需加載

使用:采用特定的標(biāo)準(zhǔn)語(yǔ)法導(dǎo)出和導(dǎo)入進(jìn)行使用
Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

CommonJS 標(biāo)準(zhǔn):一般應(yīng)用在 Node.js 項(xiàng)目環(huán)境中

ECMAScript 標(biāo)準(zhǔn):一般應(yīng)用在前端工程化項(xiàng)目中

2.Node.js 包

Node.js 包:

  • 概念:把模塊文件,代碼文件,其他資料聚合成一個(gè)文件夾

  • 包的分類

? 項(xiàng)目包:編寫(xiě)項(xiàng)目需求和業(yè)務(wù)邏輯的文件夾

? 軟件包:封裝工具和方法進(jìn)行使用的文件夾(一般使用 npm 管理)

? 軟件包分類:

? ? 本地軟件包:作用在當(dāng)前項(xiàng)目,一般封裝的屬性/方法,供項(xiàng)目調(diào)用編寫(xiě)業(yè)務(wù)需求

? ? 全局軟件包:作用在所有項(xiàng)目,一般封裝的命令/工具,支撐項(xiàng)目運(yùn)行

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js

3.常用命令

,然后自動(dòng)重啟程序

使用nodemon:

  1. 安裝:npm i nodemon -g(-g 代表安裝到全局環(huán)境中,因此下載的時(shí)候終端路徑是什么都可以)
  2. 運(yùn)行:nodemon 待執(zhí)行的目標(biāo) js 文件
總結(jié)
1. 本地軟件包和全局軟件包區(qū)別?
? 本地軟件包,作用在當(dāng)前項(xiàng)目,封裝屬性和方法
? 全局軟件包,本機(jī)所有項(xiàng)目使用,封裝命令和工具
2. nodemon 作用?
? 替代 node 命令,檢測(cè)代碼更改,自動(dòng)重啟程序
3. nodemon 怎么用?
? 先確保安裝 npm i nodemon -g
? 使用 nodemon 執(zhí)行目標(biāo) js 文件

七、Node.js總結(jié)

1.Node.js 模塊化:

概念:每個(gè)文件當(dāng)做一個(gè)模塊,獨(dú)立作用域,按需加載

使用:采用特定的標(biāo)準(zhǔn)語(yǔ)法導(dǎo)出和導(dǎo)入進(jìn)行使用

[外鏈圖片轉(zhuǎn)存中…(img-utaMSZxB-1710427561669)]

CommonJS 標(biāo)準(zhǔn):一般應(yīng)用在 Node.js 項(xiàng)目環(huán)境中

ECMAScript 標(biāo)準(zhǔn):一般應(yīng)用在前端工程化項(xiàng)目中

2.Node.js 包

Node.js 包:

  • 概念:把模塊文件,代碼文件,其他資料聚合成一個(gè)文件夾

  • 包的分類

? 項(xiàng)目包:編寫(xiě)項(xiàng)目需求和業(yè)務(wù)邏輯的文件夾

? 軟件包:封裝工具和方法進(jìn)行使用的文件夾(一般使用 npm 管理)

? 軟件包分類:

? ? 本地軟件包:作用在當(dāng)前項(xiàng)目,一般封裝的屬性/方法,供項(xiàng)目調(diào)用編寫(xiě)業(yè)務(wù)需求

? ? 全局軟件包:作用在所有項(xiàng)目,一般封裝的命令/工具,支撐項(xiàng)目運(yùn)行

[外鏈圖片轉(zhuǎn)存中…(img-4aLpJCdz-1710427561671)]

3.常用命令

Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm,Node.js,node.js文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-844478.html

到了這里,關(guān)于Node.js 學(xué)習(xí)筆記 fs、path、http模塊;模塊化;包;npm的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • node.js內(nèi)置模塊fs,path,http使用方法

    NodeJs中分為兩部分 一是V8引擎為了解析和執(zhí)行JS代碼。 二是內(nèi)置API,讓JS能調(diào)用這些API完成一些后端操作。 內(nèi)置API模塊(fs、path、http等) 第三方API模塊(express、mysql等) fs模塊 fs.readFile()方法,用于讀取指定文件中的內(nèi)容。 fs.writeFile()方法,用于向執(zhí)行的文件中寫(xiě)入內(nèi)容 path路徑處

    2024年02月12日
    瀏覽(101)
  • 【Node.js學(xué)習(xí) day4——模塊化】

    【Node.js學(xué)習(xí) day4——模塊化】

    什么是模塊化與模塊? 將一個(gè)復(fù)雜的程序文件依據(jù)一定規(guī)則(規(guī)范)拆分成多個(gè)文件的過(guò)程稱之為 模塊化 其中拆分的 每個(gè)文件就是一個(gè)模塊 ,模塊的內(nèi)部數(shù)據(jù)是私有的,不過(guò)模塊可以暴露內(nèi)部數(shù)據(jù)以便其他模塊使用。 什么是模塊化項(xiàng)目? 編碼時(shí)是按照模塊一個(gè)一個(gè)編碼的

    2024年01月16日
    瀏覽(50)
  • Node.js模塊化

    說(shuō)明:將復(fù)雜的程序文件,拆分多個(gè)文件的過(guò)程。模塊的內(nèi)部數(shù)據(jù)是私有的,不過(guò)模塊可以暴露內(nèi)部數(shù)據(jù)供其他模塊使用。 說(shuō)明:編碼時(shí)是按照模塊一個(gè)一個(gè)編碼的,整個(gè)項(xiàng)目就是一個(gè)模塊化的項(xiàng)目。 3.模塊化的優(yōu)勢(shì) 說(shuō)明: 提高代碼的復(fù)用性:模塊化可以將代碼分解為可重

    2024年02月12日
    瀏覽(20)
  • Node.js--模塊化

    1.1 什么是模塊化與模塊 將一個(gè)復(fù)雜的程序文件依據(jù)一定規(guī)則(規(guī)范)拆分成多個(gè)文件的過(guò)程稱之為 模塊化 其中拆分出的 每個(gè)文件就是一個(gè)模塊 ,模塊的內(nèi)部數(shù)據(jù)都是私有的,不過(guò)模塊可以暴露內(nèi)部數(shù)據(jù)以便其他模塊使用 1.2 什么是模塊化項(xiàng)目 編碼時(shí)是按照模塊一個(gè)一個(gè)編碼

    2024年02月16日
    瀏覽(45)
  • 【node.js】04-模塊化

    【node.js】04-模塊化

    目錄 一、什么是模塊化 二、node.js中的模塊化 1. node.js中模塊的分類 2. 加載模塊 3.?node.js 中的模塊作用域 4.?向外共享模塊作用域中的成員 4.1 module對(duì)象? 4.2?module.exports 對(duì)象 4.3 exports對(duì)象 5.?node.js 中的模塊化規(guī)范? ????????模塊化是指解決一個(gè)復(fù)雜問(wèn)題時(shí),自頂向下逐層

    2024年02月15日
    瀏覽(24)
  • (三)Node.js - 模塊化

    (三)Node.js - 模塊化

    Node.js中根據(jù)模塊來(lái)源不同,將模塊分為了3大類,分別是: 內(nèi)置模塊 :內(nèi)置模塊由Node.js官方提供的,例如fs、path、http等 自定義模塊 :用戶創(chuàng)建的每個(gè).js文件,都是自定義模塊 第三方模塊 :由第三方開(kāi)發(fā)出來(lái)的模塊,并非官方提供的內(nèi)置模塊,也不是用戶創(chuàng)建的自定義模塊

    2024年02月13日
    瀏覽(19)
  • 10-Node.js模塊化

    10-Node.js模塊化

    目標(biāo) 了解模塊化概念和好處,以及 CommonJS 標(biāo)準(zhǔn)語(yǔ)法導(dǎo)出和導(dǎo)入 講解 在 Node.js 中每個(gè)文件都被當(dāng)做是一個(gè)獨(dú)立的模塊,模塊內(nèi)定義的變量和函數(shù)都是獨(dú)立作用域的,因?yàn)?Node.js 在執(zhí)行模塊代碼時(shí),將使用如下所示的函數(shù)封裝器對(duì)其進(jìn)行封裝 ? 而且項(xiàng)目是由多個(gè)模塊組成的,

    2024年02月07日
    瀏覽(21)
  • 【Node.js】module 模塊化

    Node.js 是一個(gè)獨(dú)立的 JavaScript 運(yùn)行環(huán)境,能獨(dú)立執(zhí)行 JS 代碼,可以用來(lái)編寫(xiě)服務(wù)器后端的應(yīng)用程序?;贑hrome V8 引擎封裝,但是沒(méi)有 DOM 和 BOM。Node.js 沒(méi)有圖形化界面。 node -v 檢查是否安裝成功。 node index.js 執(zhí)行該文件夾下的 index.js 文件。 commonJS 寫(xiě)法 ES 寫(xiě)法 需要先 npm ins

    2024年02月07日
    瀏覽(28)
  • Node.js-模塊化理解及基本使用

    講一個(gè)復(fù)雜的程序文件按照一定的規(guī)則拆分成多個(gè)獨(dú)立的小文件,這些小文件就是小模塊,這就是模塊化。 每個(gè)小模塊內(nèi)部的數(shù)據(jù)是私有的,可以暴露內(nèi)部數(shù)據(jù)給外部其他模塊使用。 減少命名的沖突 提高復(fù)用性 提高可維護(hù)性 按需加載 1.單個(gè)模塊暴露 2.多個(gè)模塊暴露 暴露數(shù)

    2024年02月14日
    瀏覽(30)
  • 探究 Node.js 中的模塊化實(shí)現(xiàn)方式

    簡(jiǎn)介 : 在現(xiàn)代的軟件開(kāi)發(fā)中,模塊化是一種重要的編程范式。Node.js作為一種基于 JavaScript 運(yùn)行時(shí)的環(huán)境,也支持模塊化開(kāi)發(fā)。本文將深入探討 Node.js 中的模塊化實(shí)現(xiàn)方式,包括 CommonJS 規(guī)范和 ES 模塊規(guī)范,并介紹它們的特點(diǎn)、使用方法以及在實(shí)際開(kāi)發(fā)中的應(yīng)用。 正文: Co

    2024年02月08日
    瀏覽(95)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包