什么是Node
- Node.js 是一個(gè)基于Chrome JavaScript 運(yùn)行時(shí)建立的一個(gè)平臺(tái)啡氢,它可以像瀏覽器一樣去解析和執(zhí)行JavaScript代碼骏啰。
- Node.js是一個(gè)事件驅(qū)動(dòng)I/O服務(wù)端JavaScript環(huán)境,基于Google的V8引擎价认,V8引擎執(zhí)行Javascript的速度非嘲欣郏快,性能非常好库快。
- 特點(diǎn):事件驅(qū)動(dòng)、非阻塞式I/O模型钥顽。
- 優(yōu)點(diǎn):Node.js 使用了一個(gè)事件驅(qū)動(dòng)义屏、非阻塞式 I/O 的模型,異步編程蜂大,使其輕量又高效闽铐。
- 缺點(diǎn):?jiǎn)芜M(jìn)程,單線(xiàn)程奶浦,只支持單核cpu兄墅,不能充分的利用多核cpu服務(wù)器。一旦這個(gè)進(jìn)程崩掉澳叉,那么整個(gè)web服務(wù)就崩掉了隙咸。
包
- 包結(jié)構(gòu):用于組織包的各種文件沐悦,其實(shí)際上是一個(gè)壓縮文件,解壓以后還原目錄五督,會(huì)包含以下文件:
- package.json 描述文件藏否,描述包的相關(guān)信息,以供外部讀取分析
- bin 可執(zhí)行的二進(jìn)制文件
- lib 存放JavaScript文件js代碼
- doc 文檔
- test 單元測(cè)試
Node.js的包管理器
- npm: 全球最大的開(kāi)源生態(tài)系統(tǒng)( 國(guó)外的 )
- cnpm 淘寶鏡像( 國(guó)內(nèi)的 )
- yarn 流行
package.json 介紹
- name:包名。包名是唯一的充包,由小寫(xiě)字母副签、數(shù)字和下劃線(xiàn)組成,不能含空格误证。
- description:包簡(jiǎn)介继薛。對(duì)包進(jìn)行簡(jiǎn)要描述修壕。
- version:版本號(hào)愈捅。滿(mǎn)足《語(yǔ)義化版本識(shí)別》規(guī)范的版本字符串。
- keywords:關(guān)鍵字?jǐn)?shù)組慈鸠,通常用于搜索蓝谨。
- maintainers:維護(hù)者數(shù)組。每個(gè)元素包含name青团、email(可選)譬巫、web(可選)字段。
- contributors:貢獻(xiàn)者數(shù)組督笆。格式與maintainer數(shù)組相同芦昔。包作者應(yīng)該是貢獻(xiàn)者數(shù)組的第一個(gè)元素。
- bugs:提交bug的地址娃肿,可以是網(wǎng)址或電郵地址咕缎。
- licenses:許可證數(shù)組。每個(gè)元素要包含type(許可證名稱(chēng))和url(鏈接到許可證文本的地址)字段料扰。
- repositories:倉(cāng)庫(kù)托管地址數(shù)組凭豪。每個(gè)元素要包含type(倉(cāng)庫(kù)的類(lèi)型,如Git)晒杈、url(倉(cāng)庫(kù)地址)和path(相對(duì)于倉(cāng)庫(kù)的路徑嫂伞,可選)字段。
- dependencies:當(dāng)前包使用時(shí)所需要依賴(lài)包的列表拯钻。是一個(gè)關(guān)聯(lián)數(shù)組帖努,由包名和版本號(hào)組成。
- devDependencies:當(dāng)前包開(kāi)發(fā)時(shí)所需要依賴(lài)包的列表粪般。
- main:模塊引入入口然磷。
- scripts:腳本說(shuō)明對(duì)象。主要被包管理器用來(lái)安裝刊驴、編譯姿搜、測(cè)試和卸載包寡润。
注意:package.json文件中不可寫(xiě)注釋
{
"name": "nodedemo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon ./src/main.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"blueimp-md5": "^2.18.0",
"dotenv": "^8.2.0",
"jsonwebtoken": "^8.5.1",
"koa": "^2.13.1",
"koa-bodyparser": "^4.3.0",
"koa-router": "^10.0.0",
"mysql2": "^2.2.5"
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者