在HTTP服务器代码(例如server.js)中:
const EventEmitter = require('events') const serverEvents = new EventEmitter() // 设置HTTP服务器 const http = require('http') const httpServer = http.createServer((request, response) => { // 处理请求... // 然后发出有关发生的事件 serverEvents.emit('request', request.method, request.url) }); // 暴露事件发射器 module.exports = serverEvents
在主管代码中(例如supervisor.js):
const server = require('./server.js') // 由于服务器导出了事件发射器,因此我们可以监听它的变化: server.on('request', (method, url) => { console.log(`Got a request: ${method} ${url}`) })
每当服务器收到请求时,它将发出一个称为request主管正在监听的事件,然后主管可以对该事件做出反应。