1.创建web服务器的基本步骤

image.png

1.1 导入http模块

在比较新版的node中还提供了 http2.0 以及 https 的网络模块,以后可以深入学习一下

  1. //1.导入http模块
  2. const htttp = require('http')

1.2 创建web服务器实例 http.createServer()

你可以用两种方式来创建server实例,一种是不加参数的直接创建,还有可以在创建时传入一个回调函数,这样会直接绑定request事件,而不需要第三步手动绑定了。

  1. //2.创建web服务器实例
  2. // (1)简单创建
  3. const server = http.createServer()
  4. // (2)在创建时直接绑定 request 事件
  5. const server = http.createServer((req, res) => {
  6. res.writeHead(200, { 'Content-Type': 'application/json' });
  7. res.end(JSON.stringify({
  8. data: 'Hello World!'
  9. }));
  10. });

1.3 为服务器实例绑定 request 事件(.on方法)

  1. // 通过调用 on 方法来为服务器实例绑定接受请求request事件,即可监听客户端发送过来的网络请求
  2. server.on('request', (req, res) => {
  3. console.log('有请求访问');
  4. })

或者也可以直接在创建服务器的时候默认绑定 request 事件,这样就不需要手动调用 on 方法:

  1. const server = http.createServer((req, res) => {
  2. res.writeHead(200, { 'Content-Type': 'application/json' });
  3. res.end(JSON.stringify({
  4. data: 'Hello World!'
  5. }));
  6. });

1.4 启动服务器listen方法

  1. server.listen(80, ()=>{}) //让node监听某个端口

listen方法可以传入好几种不同的参数,来简略或者详细的指定监听的主机名,端口号等,也可以传入回调函数。
如果只是需要监听本地的某个端口,只需要传入number类型的端口号即可,如果还要指定主机名,则需要使用option的方式传入更多参数。

server.listen() 方法格式

可能的语法有:

此函数是异步的。 当服务器开始监听时,将触发 ‘listening’ 事件。 最后一个参数 callback 将被添加为 ‘listening’ 事件的监听器。

server.listen(options[, callback]) 方法详解