中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

域名和網(wǎng)站名不一樣百度推廣登錄平臺網(wǎng)址

域名和網(wǎng)站名不一樣,百度推廣登錄平臺網(wǎng)址,開發(fā)做游戲的網(wǎng)站,wordpress 小插件下載一、概述 Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環(huán)境 ,使用了一個事件驅(qū)動、非阻塞式I/O模型, 讓JavaScript 運行在服務(wù)端的開發(fā)平臺,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務(wù)端語言平起平坐的腳本語言。 官網(wǎng)地…

一、概述

Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環(huán)境 ,使用了一個事件驅(qū)動、非阻塞式I/O模型, 讓JavaScript 運行在服務(wù)端的開發(fā)平臺,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務(wù)端語言平起平坐的腳本語言。

官網(wǎng)地址:https://nodejs.org/zh-cn

Node.js 學(xué)習(xí)路線:JavaScript 基礎(chǔ)語法 + Node.js 內(nèi)置API模塊(fs、path、http等) + 第三方API模塊(express、mysql等)

在這里插入圖片描述

二、安裝

打開 官網(wǎng) ,根據(jù)實際需求選擇下載方式以及下載內(nèi)容

在這里插入圖片描述

三、Node.js 模塊

1、概述

Node.js 中根據(jù)模塊來源的不同,將模塊分為了 3 大類,分別是:

  • 內(nèi)置模塊(內(nèi)置模塊是由 Node.js 官方提供的,例如 fs、path、http 等)

  • 自定義模塊(用戶創(chuàng)建的每個 .js 文件,都是自定義模塊)

  • 第三方模塊(由第三方開發(fā)出來的模塊,并非官方提供的內(nèi)置模塊,也不是用戶創(chuàng)建的自定義模塊,使用前需要先下載)

    // 1. 加載內(nèi)置的 fs 模塊
    const fs = require(‘fs’)
    // 2. 加載用戶的自定義模塊
    const custom = require(’ ./custom.js’)
    // 3. 加載第三方模塊
    const moment = require(‘moment’)

2、內(nèi)置模塊

教程參見:

  • 【W(wǎng)3Cschool】Node.js 官方文檔
  • 【RUNOOB】Node.js
3、模塊作用域

在自定義模塊中定義的變量、方法等成員,只能在當(dāng)前模塊內(nèi)被訪問,這種模塊級別的訪問限制,叫做模塊作用域。

模塊作用域防止了全局變量污染的問題

4、module

在每個 .js 自定義模塊中都有一個 module 對象,它里面存儲了和當(dāng)前模塊有關(guān)的信息。

在自定義模塊中,可以使用 module.exports 對象,將模塊內(nèi)的成員共享出去,供外界使用。

外界用 require() 方法導(dǎo)入自定義模塊時,得到的就是 module.exports 所指向的對象。

使用 require() 方法導(dǎo)入模塊時,導(dǎo)入的結(jié)果,永遠(yuǎn)以 module.exports 指向的對象為準(zhǔn)。

由于 module.exports 單詞寫起來比較復(fù)雜,為了簡化向外共享成員的代碼,Node 提供了 exports 對象。默認(rèn)情況下,exports 和 module.exports 指向同一個對象。最終共享的結(jié)果,還是以 module.exports 指向的對象為準(zhǔn)。

為了防止混亂,建議不要在同一個模塊中同時使用 exports 和 module.exports

5、模塊的加載過程
  • 優(yōu)先從緩沖中加載
    模塊在第一次加載后會被緩存。 這也意味著多次調(diào)用 require() 不會導(dǎo)致模塊的代碼被執(zhí)行多次。
    不論是內(nèi)置模塊、用戶自定義模塊、還是第三方模塊,它們都會優(yōu)先從緩存中加載,從而提高模塊的加載效率。
  • 內(nèi)置模塊的加載機(jī)制
    內(nèi)置模塊是由 Node.js 官方提供的模塊,內(nèi)置模塊的加載優(yōu)先級最高。
    例如,require(‘fs’) 始終返回內(nèi)置的 fs 模塊,即使在 node_modules 目錄下有名字相同的包也叫做 fs。
  • 自定義模塊的加載機(jī)制
    使用 require() 加載自定義模塊時,必須指定以 ./../ 開頭的路徑標(biāo)識符。在加載自定義模塊時,如果沒有指定 ./../ 這樣的路徑標(biāo)識符,則 node 會把它當(dāng)作內(nèi)置模塊或第三方模塊進(jìn)行加載。
    在使用 require() 導(dǎo)入自定義模塊時,如果省略了文件的擴(kuò)展名,則 Node.js 會按順序分別嘗試加載以下的文件:
    ① 按照確切的文件名進(jìn)行加載
    ② 補(bǔ)全 .js 擴(kuò)展名進(jìn)行加載
    ③ 補(bǔ)全 .json 擴(kuò)展名進(jìn)行加載
    ④ 補(bǔ)全 .node 擴(kuò)展名進(jìn)行加載
    ⑤ 加載失敗,終端報錯
  • 第三方模塊的加載機(jī)制
    如果傳遞給 require() 的模塊標(biāo)識符不是一個內(nèi)置模塊,也沒有以 ./../ 開頭,則 Node.js 會從當(dāng)前模塊的父目錄開始,嘗試從 /node_modules 文件夾中加載第三方模塊。
    如果沒有找到對應(yīng)的第三方模塊,則移動到再上一層父目錄中,進(jìn)行加載,直到文件系統(tǒng)的根目錄。
    例如,假設(shè)在 ‘C:Usersitheimaproject oo.js’ 文件里調(diào)用了 require(‘tools’),則 Node.js 會按以下順序查找:
    ① C:Usersitheimaproject ode_modules ools
    ② C:Usersitheima ode_modules ools
    ③ C:Users ode_modules ools
    ④ C: ode_modules ools
  • 目錄作為模塊
    當(dāng)把目錄作為模塊標(biāo)識符,傳遞給 require() 進(jìn)行加載的時候,有三種加載方式:
    ① 在被加載的目錄下查找一個叫做 package.json 的文件,并尋找 main 屬性,作為 require() 加載的入口
    ② 如果目錄里沒有 package.json 文件,或者 main 入口不存在或無法解析,則 Node.js 將會試圖加載目錄下的 index.js 文件。
    ③ 如果以上兩步都失敗了,則 Node.js 會在終端打印錯誤消息,報告模塊的缺失:Error: Cannot find module ‘xxx’

四、npm與包

1、包

Node.js 中的第三方模塊又叫做包。

不同于 Node.js 中的內(nèi)置模塊與自定義模塊,包是由第三方個人或團(tuán)隊開發(fā)出來的,免費供所有人使用。

由于 Node.js 的內(nèi)置模塊僅提供了一些底層的 API,導(dǎo)致在基于內(nèi)置模塊進(jìn)行項目開發(fā)的時,效率很低。包是基于內(nèi)置模塊封裝出來的,提供了更高級、更方便的 API,極大的提高了開發(fā)效率。

  • https://www.npmjs.com/ 網(wǎng)站上搜索自己所需要的包

  • https://registry.npmjs.org/ 服務(wù)器上下載自己需要的包

  • npm 用于從服務(wù)器下載包

一個規(guī)范的包,它的組成結(jié)構(gòu),必須符合以下 3 點要求:

  • 包必須以單獨的目錄而存
  • 在包的頂級目錄下要必須包含 package.json 這個包管理配置文件
  • package.json 中必須包含 name,version,main 這三個屬性,分別代表包的名字、版本號、包的入口。

關(guān)于更多的約束參見:【包約束規(guī)范】

2、npm(Node Package Manager)
2.1 概述

npm 是隨著 Node.js 的安裝一塊安裝的包管理和分發(fā)工具。

npm 常見的場景:

  • 允許用戶從 npm 服務(wù)器下載別人編寫的第三方包到本地使用。
  • 允許用戶從 npm 服務(wù)器下載并安裝別人編寫的命令行程序到本地使用。
  • 允許用戶將自己編寫的包或命令行程序上傳到 npm 服務(wù)器供別人使用。

npm 的背后,是基于 couchdb 的一個數(shù)據(jù)庫,詳細(xì)記錄了每個包的信息,包括作者、版本、依賴、授權(quán)信息等。它的一個很重要的作用就是:將開發(fā)者從繁瑣的包管理工作(版本、依賴等)中解放出來,更加專注于功能的開發(fā)。

npm 命令參見:npm 官方文檔

2.2 package.json

項目使用 npm 初始化命令(項目名需為英文):

npm init -y

該命令會在項目根目錄生成包管理配置文件 package.json ,用來記錄與項目有關(guān)的一些配置信息。

{"name": "code",   				// 項目名稱 "version": "1.0.0",      	// 項目版本號"description": "",   			// 項目描述"main": "index.js",     	// 包的入口文件"scripts": {}							// 腳本"author": "",							// 作者"keywords": [],    				// 關(guān)鍵字"license": "ISC",  				// 開源許可協(xié)議"devDependencies": {},    // 開發(fā)依賴包"dependencies": {}    		// 核心依賴包
}

dependencies & devDependencies

如果某些包只在項目開發(fā)階段會用到,在項目上線之后不會用到,則建議把這些包記錄到 devDependencies 節(jié)點中。

與之對應(yīng)的,如果某些包在開發(fā)和項目上線之后都需要用到,則建議把這些包記錄到 dependencies 節(jié)點中。

將包記錄到 devDependencies 節(jié)點中:

// 安裝指定的包,并記錄到 devDependencies 節(jié)點中
npm i 包名 -D//注意:上述命令是簡寫形式,等價于下面完整的寫法:
npm install 包名 --save-dev

判斷一個包是否在項目上線后會不會用到:https://www.npmjs.com/包名#install

2.3 node_modules & package-lock.json

初次裝包完成后,在項目文件夾下多一個叫做 node_modules 的文件夾和 package-lock.json 的配置文件。

  • node_modules 文件夾用來存放所有已安裝到項目中的包。require() 導(dǎo)入第三方包時,就是從這個目錄中查找并加載包。
  • package-lock.json 配置文件用來記錄 node_modules 目錄下的每一個包的下載信息,例如包的名字、版本號、下載地址等。

程序員不要手動修改 node_modules 或 package-lock.json 文件中的任何代碼,npm 包管理工具會自動維護(hù)它們。

多個第三方包體積較大,在協(xié)作開發(fā)時,一般不將第三方包上傳至代碼倉庫。

即將 node_modulus 文件夾,添加到 .gitignore 忽略文件中。

當(dāng)我們拉代碼時,需執(zhí)行 npm install 來一次性安裝所有的包。

npm install` 會先讀取 package.json 中的 dependencies 節(jié)點,讀取到新記錄的所有依賴包名稱和版本號之后,npm包管理工具把所有包安裝。

公司項目有的時候會有自己開發(fā)的包,這類包一般存放在公司自己建的鏡像倉庫,所以在執(zhí)行 npm install 前,需要修改鏡像。

2.4 切換鏡像源

由于在國內(nèi)上網(wǎng)環(huán)境影響,一些依賴包下載會很慢,甚至?xí)螺d失敗,所以就要使用到鏡像下載。

將npm默認(rèn)的registry修改為淘寶registry:

# 查看當(dāng)前使用的鏡像路徑
npm config get registry# 修改為淘寶鏡像
npm config set registry https://registry.npm.taobao.org/# 檢查是否修改成功
npm config get registry

鏡像源地址:

npm 官方原始鏡像網(wǎng)址是:https://registry.npmjs.org/
淘寶 NPM 鏡像:http://registry.npmmirror.com
阿里云 NPM 鏡像:https://npm.aliyun.com
騰訊云 NPM 鏡像:https://mirrors.cloud.tencent.com/npm/
華為云 NPM 鏡像:https://mirrors.huaweicloud.com/repository/npm/
網(wǎng)易 NPM 鏡像:https://mirrors.163.com/npm/
中國科學(xué)技術(shù)大學(xué)開源鏡像站:http://mirrors.ustc.edu.cn/
清華大學(xué)開源鏡像站:https://mirrors.tuna.tsinghua.edu.cn/

nrm:可以快速查看和切換下包的鏡像源

# 通過 npm 包管理器,將 nrm 安裝為全局可用的工具
npm i nrm -g# 查看所有可用的鏡像源
nrm ls# 將下包的鏡像源切換力 taobao 鏡像
nrm use taobao

使用淘寶 cnpm:

# 全局安裝基于淘寶源的cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org# 檢測cnpm安裝是否成功
cnpm -v
2.5 項目包 & 全局包
  • 項目包:那些被安裝到項目的 node_modules 目錄中的包,都是項目包
  • 全局包:在執(zhí)行 npm install 命令時,如果提供了 -g 參數(shù),則會把包安裝為全局包。全局包安裝路徑:
    • Windows:C:Users用戶目錄AppDataRoaming pm ode_modules
    • Mac:

只有工具性質(zhì)的包,才有全局安裝的必要性。因為它們提供了好用的終端命令。

判斷某個包是否需要全局安裝后才能使用,可以參考官方提供的使用說明即可。

推薦一些全局包:

  • nrm:切換鏡像源
  • i5ting_toc:把 md 文檔轉(zhuǎn)為 html 頁面
  • nodemon:監(jiān)聽項目文件的變動,當(dāng)代碼被修改后,nodemon 會自動重啟項目

五、Express

1、Express 概述

Express 是基于 Node.js 平臺,快速、開放、極簡的 Web 開發(fā)框架。

Express 的作用和 Node.js 內(nèi)置的 http 模塊類似,是專門用來創(chuàng)建 Web 服務(wù)器的。

Express 就是一個 npm 上的第三方包,提供了快速創(chuàng)建 Web 服務(wù)器的便捷方法。

Express 框架核心特性:

  • 可以設(shè)置中間件來響應(yīng) HTTP 請求。
  • 定義了路由表用于執(zhí)行不同的 HTTP 請求動作。
  • 可以通過向模板傳遞參數(shù)來動態(tài)渲染 HTML 頁面。
2、Express 基本使用
  • Express 快速入門

十、資料

  • 【b站 黑馬】Node.js 教程
http://www.risenshineclean.com/news/5700.html

相關(guān)文章:

  • 太湖云建站網(wǎng)站建設(shè)推廣普通話手抄報內(nèi)容50字
  • 做公司網(wǎng)站有什么亮點seo基礎(chǔ)培訓(xùn)
  • java高端網(wǎng)站建設(shè)成都網(wǎng)絡(luò)營銷策劃
  • 門戶網(wǎng)站建設(shè)自查報告seo日常工作內(nèi)容
  • 做網(wǎng)站 公司有哪些互聯(lián)網(wǎng)營銷平臺
  • 網(wǎng)站建設(shè)的運用場景百度推廣管理平臺登錄
  • 企業(yè)做網(wǎng)站樂云seo快速上線2345網(wǎng)址導(dǎo)航桌面版
  • 洪湖自己的網(wǎng)站seo大牛
  • 官網(wǎng)站超鏈接怎么做優(yōu)就業(yè)seo
  • 做圖表用的網(wǎng)站優(yōu)化seo軟件
  • 網(wǎng)站關(guān)鍵詞代碼怎么做互聯(lián)網(wǎng)推廣有哪些方式
  • 威海高區(qū)有沒有建設(shè)局的網(wǎng)站uc搜索引擎入口
  • 簡歷怎么制作網(wǎng)站新聞發(fā)稿
  • 如何做導(dǎo)航網(wǎng)站市場推廣怎么寫
  • 泉州企業(yè)網(wǎng)站維護(hù)制作域名歸屬查詢
  • 家庭寬帶怎么做網(wǎng)站網(wǎng)站如何宣傳推廣
  • 網(wǎng)站建設(shè) 徐州聯(lián)合早報 即時消息
  • seo建站是什么意思愛廷玖達(dá)泊西汀
  • 成都seo整站上海搜索引擎優(yōu)化1
  • 企業(yè)網(wǎng)站建設(shè)費用定金怎么做賬官網(wǎng)排名優(yōu)化方案
  • 網(wǎng)站廣告形式合肥seo推廣公司哪家好
  • 百度網(wǎng)站下拉怎么做的怎么在百度上注冊店鋪
  • 上海專業(yè)制作網(wǎng)站口碑營銷的案例及分析
  • 數(shù)碼產(chǎn)品網(wǎng)站建設(shè)百度seo優(yōu)化技巧
  • php是專門做網(wǎng)站的最全資源搜索引擎
  • 如何建設(shè)網(wǎng)站并與數(shù)據(jù)庫相連百度輸入法免費下載
  • 鄭州網(wǎng)站制作漢獅杭州seo網(wǎng)站推廣排名
  • 裝修的網(wǎng)站都有哪些手機(jī)seo排名軟件
  • 網(wǎng)頁圖片大小怎么調(diào)整sem優(yōu)化怎么做
  • 中山市 做網(wǎng)站網(wǎng)站建立具體步驟是