在 Node.js 中,事件是可以監聽並執行的操作。將事件想像成一個通知系統。每當發生某些事情時,例如檔案讀取完成或收到請求,Node.js 都會觸發一個您可以回應的事件。
Node.js 有一個名為 events 的內建模組,該模組中最重要的類別是 EventEmitter。它允許您定義和處理事件。
讓我們看看如何建立事件發射器。
const EventEmitter = require('events'); const myEmitter = new EventEmitter(); // Register an event listener myEmitter.on('greet', () => { console.log('Hello there!'); }); // Emit the event myEmitter.emit('greet');
在此範例中,我們註冊了一個greet事件的監聽器,然後發出該事件。結果是一個簡單的“你好!”打印到控制台。
您也可以在發出事件時傳遞參數。當您需要傳遞資料時,這很有幫助。
myEmitter.on('sayHello', (name) => { console.log(`Hello, ${name}!`); }); myEmitter.emit('sayHello', 'Alice');
現在,當我們發出 sayHello 事件時,它會向 Alice 打招呼。
讓我們建立一個基本的 HTTP 伺服器並示範事件如何發揮作用。在 Node.js 中,http 模組廣泛使用事件。每次請求到達伺服器時,都會觸發事件。
const http = require('http'); // Create a server const server = http.createServer((req, res) => { if (req.url === '/') { res.write('Hello World'); res.end(); } }); // Register an event listener for 'request' server.on('request', (req, res) => { console.log(`Received request for ${req.url}`); }); // Start the server server.listen(3000, () => { console.log('Server is running on port 3000'); });
在此範例中:
您可以在伺服器程式碼中建立自訂事件來處理特定任務。這是在客戶端連線時發出自訂事件的範例。
const EventEmitter = require('events'); const http = require('http'); // Create an event emitter instance const myEmitter = new EventEmitter(); // Create a server const server = http.createServer((req, res) => { res.write('Hello Client'); res.end(); // Emit a custom event on each request myEmitter.emit('clientConnected', req.url); }); // Listen for the custom 'clientConnected' event myEmitter.on('clientConnected', (url) => { console.log(`A client connected to ${url}`); }); // Start the server server.listen(3000, () => { console.log('Server is running on port 3000'); });
在此範例中:
事件是 Node.js 的核心,使其能夠強大地處理非同步操作,尤其是在伺服器上下文中。透過掌握事件,您將為建立可擴展且高效的應用程式奠定堅實的基礎。
感謝您的閱讀,祝您編碼愉快! ?
以上是使用簡單程式碼範例了解 Node.js 中的事件 - Node.js 教學 - 第 6 部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!