node学习篇之简单搭建一个http服务

161 阅读2分钟

这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战

node事件触发器

  • 在浏览器中,我们可以通过事件处理许许多多的用户的交互,比如:鼠标的单击,键盘按钮的按下,鼠标移动等。
  • 而在后端,Node.js也提供了 使用 events模块构建类似系统的选项。
  • events模块 提供了 EventEmitter类,用于处理事件。
const EventEmitter = require('events')
const eventEmitter = new EventEmitter()
  • 该对象还公开了 onemit方法,以及一些别的方法:
  • 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('我要关闭响应啦')