Nodejs———需要的基本環境(服務自啟動(nodemon)、npm、nvm、nrm)

過往深處少年藍發表於2020-12-17

一、nodejs基本介紹

nodejs是一個基於 Chrome V8 引擎的 JavaScript 執行環境,nodejs的API包括全域性、內建模組、第三方模組等三部分。其中我們常見的用npm安裝釋出的依賴就是第三方模組,當然你也可以自己開發一個第三方模組。nodejs的核心包括內建的V8引擎和libuv開發包,V8引擎我們都熟悉瀏覽器上的引擎,執行js程式碼,libuv開發包主要內建了非同步IO、事件驅動等核心模組。還有一個就是node底層,任何一個程式需要在系統中執行,都需要有一個相容系統的底層程式碼,比如呼叫底層環境(windows,mac,linux)

二、用nodejs搭建一個服務

我們都知道,前端靜態頁面請求一個資料,都會用ajax傳送一個請求給web server,我們就用nodejs搭建一個簡單的webserver,我們新建一個資料夾,然後執行npm init 建立package.json檔案,在建立一個demo.js檔案,這樣我們就可以引入http模組,並且開啟該http服務,啟動方式有兩種如下,還有如何解決亂碼問題。

const os = require('os')
// 獲取cpus
const cpus = os.cpus()
console.log(cpus.length)
// 獲取記憶體
const total = os.totalmem()
console.log(total/1024/1024/1024) // GB
// 剩餘記憶體
console.log(os.freemem()/1024/1024/1024)


// ajax-->api-->web server(node js實現)
// 啟動方式1.在命令列中執行:node demo.js
// 啟動方式2.在package.json檔案中配置啟動方式:"start":"node demo.js",每次啟動就可以在命令列中執行npm start 啟動服務了
// 解決亂碼問題,設定響應頭,告訴瀏覽器用utf-8編碼
const http = require('http')
const server = http.createServer((req, res) =>{
    res.setHeader('Content-Type', 'text/plain;charset=utf-8')
    res.end('Hello,你好世界')
})
server.listen(3000, '127.0.0.1', () => {
    console.log('web服務啟動成功')
})

package.json檔案:

{
  "name": "app3",
  "version": "1.0.0",
  "description": "",
  "main": "demo.js",
  "scripts": {
    "start": "nodemon demo.js",
    "start:node": "node demo.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "nodemon": "^2.0.6"
  }
}

 三、使用nodemon服務自動重啟

nodemon的作用:每次我們修改程式碼,可能都需要重啟服務才能重新整理,這樣做太麻煩了,nodemon就幫我們每次修改程式碼後自動重啟,具體使用如下:

因為nodemon預設是我們修改了任何檔案都會自動重啟,甚至修改package.json都會重啟,這樣太影響效率,我們可以配置nodemon.json 指定修改後重啟的服務

nodemon.json:(重啟後生效)

 

四、使用nrm 管理npm源

安裝:npm install nrm -g

使用nrm ls 檢視nrm內建的源

使用nrm -h 檢視nrm命令

如何使用:我們先用nrm current 檢視當前使用的源,是npm,然後切換使用cnpm:nrm use cnpm ,在使用nrm current檢視,發現變成了cnpm

五、使用nvm管理nodejs版本

為什麼要使用:因為nodejs版本過多,每個專案可能用的node版本不一樣,使用nvm就可以解決切換版本的煩惱。

安裝:檢視nvm官網安裝方法

檢視命令:nvm -h

檢視node當前幾個版本:nvm ls

切換nodejs版本:nvm use v10.14.0,然後檢視node版本,node -v,會發現就切換了當前版本

 

相關文章