这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战
node事件触发器
- 在浏览器中,我们可以通过事件处理许许多多的用户的交互,比如:鼠标的单击,键盘按钮的按下,鼠标移动等。
- 而在后端,Node.js也提供了 使用 events模块构建类似系统的选项。
- events模块 提供了 EventEmitter类,用于处理事件。
const EventEmitter = require('events')
const eventEmitter = new EventEmitter()
- 该对象还公开了
on
和emit
方法,以及一些别的方法: emit
用于触发事件。on
用于添加回调函数(会在事件被触发时)once()
: 添加单次监听器。removeListener()
/off()
: 从事件中移除事件监听器。removeAllListeners()
: 移除事件的所有监听器。
搭建HTTP服务器
- 搭建http服务器 需要用到 node 提供的 http模块。
const http = require('http')
const port = 3000
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('你好世界\n')
})
server.listen(port, () => {
console.log(`服务器运行在 http://${hostname}:${port}/`)
})
上述代码,创建了一个最基本的http web服务器。服务器被设置为在指定的 3000
端口上进行监听。 当服务器就绪时,则 listen
回调函数会被调用。
传入的回调函数会在每次接收到请求时被执行。 每当接收到新的请求时,request
事件会被调用,并提供两个对象:一个请求(http.IncomingMessage
对象)和一个响应(http.ServerResponse
对象)。
request
提供了请求的详细信息。 通过它可以访问请求头和请求的数据。
response
用于构造要返回给客户端的数据。
比如,我们在上述代码中的设置了 statusCode 200表示响应成功。设置了 setHeader。
此外,最后我们需要在结束时关闭响应,可以将内容作为参数添加到 end()方法中。比如:
res.end('我要关闭响应啦')