### 1、什麼是node.js
> Node是一個基於 Chrome V8 引擎的 JavaScript 運行環境
>
> Node使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效
>
> Node.js 的包管理器 npm,是全球最大的開源庫生態系統
### 2、node.js能作哪些事
1. 處理文件與數據庫
2. 與互聯網進行溝通,以標準化的格式處理請求併發送回答(處理客戶端請求)
3. 用來執行編譯 CSS 預編譯語言、預編譯、壓縮、混淆 JS、壓縮圖片、reload、deploy 等工程化任務
### 3、node.js的優勢
1. 處理高併發場景性能更高
Java 1G 服務器 每一個客戶端鏈接耗費2M資源 1024=2^10
node 1G 服務器
2. 採用事件驅動、異步編程,爲網絡服務而設計
3. 輕量高效,運行速度是PHP的86倍
4. 包和模塊
5. 便於前端學習
### 4、使用node.js
##### 安裝
> node官網 https://nodejs.org
> node中文網 http://nodejs.cn
```javascript
node -v //查看版本,檢測安裝是否成功
```
##### 運行
```javascript
node index //文件名,後綴.js可寫可不寫
```
### 5、node.js模塊
##### 核心模塊
os、http、fs等
##### 自定義模塊
exports、module.exports、require
##### 第三方模塊
nodemon、cheerio等,須要在命令行中執行 `npm install 模塊名稱`
模塊之間不能循環依賴
npm
> 是一個包管理工具
> 是倉庫
> 是網站
##### nrm
npm install nrm -g
nrm ls
##### yarn
````javascript
yarn add package == npm install package --save
yarn add package -dev == npm install package --save-dev
yarn update package == npm updata package
yarn remove package == npm uninstall package
````
**用node服務器作一箇中間層**
**前端 -> node服務器 -> JAVA服務器**
#####npm上傳本身的模塊包
1. 註冊用戶
2. 在本地新建一個項目
3. 使用 npm init -y初始化項目
4. npm adduser 輸入用戶名密碼
5. npm publish
javascript