node.js - 使用http核心模块创建web服务器

http核心模块

http核心模块的功能就是创建一个web服务器。

首先需要使用 require() 加载http核心模块。

//加载http核心模块
var http = require("http");

一共有两种方式可以创建:

  • 直接使用createServer()创建。

  • 使用createServer()返回一个实例对象,通过实例对象分步创建。

0x01 分步创建(根据请求路径不同响应不同内容):

//加载http核心模块
var http = require("http");

//通过createServer()创建一个web服务器,并返回一个实例对象
var server = http.createServer();

/*
通过实例对象中的on方法,添加监听事件
  - 第一个参数为监听事件
  - 第二个参数为回调函数:
    - 回调函数有两个参数:
      - request:请求对象
      - response:响应对象
*/
//监听请求,当客户端的请求过来,会自动触发回调函数
server.on("request",function(request, response){
    //request.url可以获取客户端请求的路径,首页为:/
    //获取请求路径
    var url = request.url;
    switch(url){
        //如果请求的是首页,则响应index
        case "/" :
            response.end("index");
            break;
        //如果请求的是admin,则响应admin
        case "/admin" :
            response.end("admin");
            break;
        //如果请求的是API,则响应JSON数据
        case "/API" :
            var phoneApi = [
                {
                    "name":"iphone 12 pro",
                    "price":8499
                },
                {
                    "name":"SAMSUNG Galaxy S21",
                    "price":3999
                }
            ];
            //将JSON数据转换成字符串,否则报错
            response.end(JSON.stringify(phoneApi));
            break;
        //如果请求其他路径,则响应404 not Found!
        default :
            response.end("404 not Found!");
    }
});

//绑定端口号
server.listen("80");

0x02 直接创建:

//加载http核心模块
var http = require("http");

//通过createServer()创建一个web服务器:直接写回调函数
var server = http.createServer(function(request, response){
    //直接在里面写代码体即可 - 和分步创建相同
}).listen("80");

发表评论 / Comment

用心评论~