一、安裝Node.js
Node.js是基於V8引擎的,它支持許多操作系統,如Windows、Mac和Linux。安裝Node.js之前,需要先選擇相應的操作系統版本。可以在官方網站(https://nodejs.org)下載不同平台下的Node.js。
// 下載Node.js // Windows版本 https://nodejs.org/dist/v14.15.4/node-v14.15.4-x64.msi // Mac版本 https://nodejs.org/dist/v14.15.4/node-v14.15.4.pkg // Ubuntu版本 sudo apt install nodejs // CentOS版本 sudo yum install nodejs
安裝完成之後,可以通過以下命令驗證Node.js的安裝:
node -v
如果輸出了版本號,則說明Node.js已安裝成功。
二、Node.js模塊
Node.js提供了許多核心模塊,如http、fs、path等。通過Node.js的require()方法,可以在代碼中引入相應的模塊。下面是一個例子:
// 引入http模塊 const http = require('http'); // 創建一個伺服器 http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!'); }).listen(8080); // 在終端上輸出一段文本 console.log('Server running at http://localhost:8080/');
在Node.js中,模塊分為核心模塊和文件模塊。核心模塊是Node.js自身提供的模塊,文件模塊是用戶自定義的模塊。用戶自定義的模塊可以通過module.exports或exports將函數、對象、類等導出給其他模塊使用,也可以通過require()方法來引入其他模塊的函數、對象、類等。
三、Node.js非同步編程
Node.js採用非同步方式進行編程,它的IO操作都是非同步的。這就意味著在執行IO操作的同時,Node.js可以繼續執行其他的代碼,而不需要等到IO操作完成之後才能執行其他代碼。
非同步編程可以提高Node.js的性能,避免了因為等待IO操作而造成的阻塞,提高了系統的響應速度。Node.js中的非同步編程方式包括回調函數、Promise等方式,下面是一個回調函數例子:
// 使用回調函數進行非同步編程 function readFile(callback) { fs.readFile('file.txt', function (err, data) { if (err) { console.log(err); } else { callback(data); } }); } // 調用readFile函數並傳入一個回調函數 readFile(function (data) { console.log(data); });
四、Node.js的事件循環
Node.js中的事件循環是實現非同步編程的核心。當Node.js啟動時,事件循環會開始運行,它會不斷地從事件隊列中取出事件,然後執行對應的回調函數。
事件循環包括以下幾個階段:
- timers階段:執行setTimeout和setInterval等定時器回調函數
- pending callbacks階段:執行系統級別的回調函數
- idle, prepare階段:系統內部使用
- poll階段:等待I/O事件完成
- check階段:執行setImmediate的回調函數
- close callbacks階段:執行close事件的回調函數
下面是一個事件循環的例子:
// 在timers階段註冊一個定時器回調函數 setImmediate(function () { console.log('setImmediate'); }); // 在poll階段註冊一個I/O事件 fs.readFile('file.txt', function (err, data) { console.log('readFile'); }); // 在check階段註冊一個setImmediate回調函數 setImmediate(function () { console.log('setImmediate 2'); });
執行結果是:
setImmediate readFile setImmediate 2
五、Node.js的調試
Node.js提供了許多調試工具,如Node.js自身的調試器、VS Code的調試器等。Node.js自身的調試器可以通過命令行方式來使用,VS Code的調試器可以通過安裝插件並配置launch.json文件來使用。
下面是Node.js自身的調試器的例子:
// 新建一個文件名為debug.js const a = 1; const b = 2; const sum = a + b; debugger; // 執行debug.js並啟動調試器 node inspect debug.js // 在控制台中輸入以下命令 > n // 繼續執行到下一行 > repl // 進入repl環境,可以查看變數的值 > sum // 輸出變數sum的值
VS Code的調試器需要在launch.json文件中配置調試參數和調試腳本,下面是一個launch.json的例子:
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Debug", "program": "${workspaceFolder}/debug.js", "outFiles": [], "sourceMaps": true } ] }
六、Node.js的web開發
Node.js可以用來開發web應用,其中最著名的框架是Express。Express是一個快速、靈活的Node.js web應用框架,它提供了許多中間件和工具,方便開發者創建web應用。
下面是一個使用Express框架創建web應用的例子:
// 安裝Express框架 npm install express // 創建一個文件名為app.js // 引入Express框架 const express = require('express'); // 創建Express實例 const app = express(); // 創建路由 app.get('/', function (req, res) { res.send('Hello World!'); }); // 啟動伺服器 app.listen(3000, function () { console.log('Server listening on port 3000'); });
執行完以上代碼後,在瀏覽器中輸入http://localhost:3000/即可訪問該web應用。
七、Node.js的npm
Node.js的npm(Node Package Manager)是一個包管理器,可以方便地管理Node.js的第三方模塊。
npm可以用於安裝、升級、卸載Node.js模塊,也可以用於查看已安裝模塊的版本等信息。下面是使用npm安裝一個模塊的例子:
// 安裝一個名為express的模塊 npm install express
除此之外,npm還提供了許多其他的命令,如publish、unpublish、init等,可以通過npm help命令查看npm的詳細幫助信息。
原創文章,作者:SNTHC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/371900.html