答案: Node.js 是一個基於 Chrome 的 V8 JavaScript 引擎所建置的運作環境,允許開發者在伺服器端執行 JavaScript 程式碼。它專為建立可擴展的網路應用程式而設計,並支援非阻塞、事件驅動的架構。
答案:JavaScript是一種運行在瀏覽器中的程式語言。
Node.js 是一個允許 JavaScript 在伺服器端運行的運作環境。
答案: 事件驅動程式設計是一種程式設計範例,其中程式的流程由使用者操作、感測器輸出或來自其他程式的訊息等事件決定。在 Node.js 中,事件驅動程式設計是使用事件發射器和偵聽器處理非同步操作的核心。
答案: process.nextTick() 安排回調在目前作業完成之後、事件迴圈繼續前執行。
setImmediate() 安排在 I/O 事件之後將回調放置在事件循環中。
答案: Node.js 使用單執行緒、非阻塞 I/O 模型和事件驅動架構。它利用回調、promise 和 async/await 來處理非同步操作,確保伺服器可以同時處理多個請求,而不會阻塞主執行緒。
答案: 流是 Node.js 中的對象,可讓您以區塊的形式讀取或寫入資料。它們用於透過以更小的、可管理的區塊的形式處理大量數據,從而減少記憶體使用。有四種類型的流:
可讀(例如,fs.createReadStream())
可寫(例如,fs.createWriteStream())
雙工(可讀可寫)
變換(一種雙工流,其中輸出是輸入的變換)
答案:同步程式碼是阻塞的;它會等待每個操作完成,然後再進行下一個操作。
非同步程式碼是非阻塞的;它允許程式繼續執行,而無需等待操作完成(透過回呼、promise 或 async/await 處理)。
答案: Express.js 中的中間件函數是在請求-回應週期中執行的函數。他們可以在將控制權傳遞給下一個中介軟體功能之前修改請求、回應或執行某些邏輯。常見類型包括:
應用層級中間件:綁定到express()的實例
路由器級中間件:綁定到express.Router()的實例
錯誤處理中間件
*答案:* 事件循環負責處理 Node.js 中的非同步回調。它持續監視呼叫堆疊、任務佇列和 I/O 操作。當呼叫堆疊為空時,它會處理事件佇列中的任務,透過推遲繁重的操作來確保非阻塞 I/O。
答案: cluster 模組允許 Node.js 建立共享相同伺服器連接埠的子程序(worker)。這有助於負載平衡並透過執行多個 Node.js 實例來同時處理更多請求來充分利用多核心系統。
答案: require() 是 CommonJS 模組系統的一部分,並且是同步的。它用於載入 ES6 之前的 Node.js 版本中的模組。
import 是 ES6 模組系統的一部分,它與 JavaScript 的本機模組系統搭配使用,支援 tree-shaking 和靜態分析。它用於帶有 ECMAScript 模組的較新版本的 Node.js。
答案: 錯誤處理可以透過多種方式完成:
使用錯誤優先模式的回呼 (callback(err, result))
將 Promise 與 .catch() 一起使用來拒絕 Promise
將 try...catch 區塊與 async/await
一起使用
在 Express.js 中使用中間件處理錯誤
答案: package.json 是 Node.js 專案中的清單文件,其中包含有關項目及其相依性的元資料。它定義了專案的名稱、版本、主入口點、腳本、依賴項、devDependency 和其他配置。
*答案:* fs.readFile() 將整個文件讀入內存,然後用文件內容執行回調。
fs.createReadStream() 以區塊的形式讀取文件,這使得大文件的記憶體效率更高,因為它串流資料而不是一次載入全部資料。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3