首页 > 其他分享 >Day 03 http模块

Day 03 http模块

时间:2022-12-29 13:12:43浏览次数:62  
标签:03 const url res req server http Day

http模块

一、什么是http模块

  • http模块是官方提供,用来创建web服务器的模块。通过提供的http.createServer(),就可以将普通电脑变为服务器。
  • 导入:const http = require('http');

二、创建web服务器

  • 导入模块
  • 创建web服务器实例
  • 服务器实例绑定request时间,监听客户端请求
  • 启动服务器
点击查看代码
const http = require('http');

const server = http.createServer();
// 监听请求
server.on('request',function(request,response){

    console.log('Someone visit our server');
});
// 启动服务器
server.listen(8080,function(){
    console.log('server running at 127.0.0.1');
});

三、req请求对象

  • 包含了与客户端相关的数据和属性
点击查看代码
const http = require('http');

const server = http.createServer();
// 监听请求
server.on('request',function(req){
    let url = req.url;
    let method = req.method;
    console.log('Someone visit our server');
    let str = `Your request url is ${url} and request method is ${method}`
    console.log(str)
});
// 启动服务器
server.listen(8080,function(){
    console.log('server running at 127.0.0.1');
});

四、res响应对象

  • 访问与服务器相关的数据和属性
点击查看代码
const http = require('http');

const server = http.createServer();
// 监听请求
server.on('request',function(req,res){
    let url = req.url;
    let method = req.method;
    console.log('Someone visit our server');
    // 防止中文乱码
    res.setHeader('Content-Type','text/html; charset=utf-8');
    let str = `Your request url is ${url} and request method is ${method}`
    console.log(str)
    // 向客户端发送特定的内容
    res.end(str)
});
// 启动服务器
server.listen(8080,function(){
    console.log('server running at 127.0.0.1');
});

五、根据不同的url返回不同的html内容

  • 获取url地址
  • 设置默认返回内容-404
  • 判断用户是否访问的是/或/index.html首页
  • 判断用户是否访问的是/about.html页面
  • 设置Content-Type响应头,防止中文乱码
  • 使用res.end()将内容返回给用户浏览器
点击查看代码
const http = require('http');

const server = http.createServer();

server.on('request',(req,res)=>{

    const url = req.url;

    let content = '<h1>404 Not Found!</h1>';

    if(url === '/' || url === '/index.html'){
        content = '<h1>首页</h1>';
    }else if(url === '/about.html'){
        content = '<h1>详情页</h1>';
    }

    res.setHeader('Content-Type','text/html; charset=utf-8');

    res.end(content);
});

server.listen(8080,()=>{
    console.log('Server running at http://127.0.0.1');
});

案例-实现clock时钟的web服务器

  1. 把文件的实际存放路径,作为每个资源的请求url地址
    image
点击查看代码
const fs = require('fs');
const path = require('path');
const http = require('http');

const server = http.createServer()

server.on('request',(req,res)=>{
    const url = req.url;
    let fPath = '';
    if(url === '/'){
        fPath = path.join(__dirname,'./clock/index.html');
    }else{
        fPath = path.join(__dirname,'./clock',url);
    }
    // 请求的地址映射为本地文件的存放位置
    //const fPath = path.join(__dirname,url); 

    let content = '<h1>404 NOT FOUND!</h1>';

    fs.readFile(fPath,'utf-8',(err,dataStr)=>{
        if(err){
            res.end(content);
        }
        res.end(dataStr);
    });
});

server.listen(8080,()=>{
    console.log('Server running at http://127.0.0.1:8080/');
});

标签:03,const,url,res,req,server,http,Day
From: https://www.cnblogs.com/xiubai/p/17012259.html

相关文章

  • 重温C程序设计(第五版)-谭浩强-Day2
    1.字符输入输出函数:putchar(c)为一般形式注:putchar(‘\n’)为输出一个换行符,putchar为输出一个字符,不要用“”,这个使用来表示输出字符串的。字符类型也属于整数类型,因此将一个......
  • Day03
    卸载JDK删除Java的安装目录删除JAVAHOME删除path下关于Java的目录java-version安装JDK百度搜索JDK8,找到下载地址同意协议下载电脑对应的版本......
  • 软件需求设计方法学全程实例剖析幻灯片03-业务建模[2020-11更新]
    pdf文件下载:http://umlchina.com/training/umlchina_03_bm.pdf......
  • 2032. 至少在两个数组中出现的值
    2032.至少在两个数组中出现的值给你三个整数数组nums1、nums2和nums3,请你构造并返回一个元素各不相同的数组,且由至少在两个数组中出现的所有值组成。数组中的......
  • Day02
    打开CMD的方式开始+系统+命令提示符Win键+R输入cmd打开控制台(推荐使用)在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口资源管理器的地址......
  • Day01
    MarkDown学习二级标题三级标题四级标题 字体Hello,World!Hello,World!Hello,World!Hello,World!Hello,World! 引用好好学习专业课分割线图片 超......
  • D. Valiant's New Map (二位前缀和)
    D.Valiant'sNewMap题目大意给定一个二维数组,要求找到满足限制条件的最大正方形,限制条件为:正方形内所有元素都不小于该正方形的边长。解题思路显然可以二分答案,解题......
  • Leetcode203
    题意:去掉给定头ListNode*head的单链表内val等于一个给定val的节点并返回头思路:此题删除链表中元素是很简单的,只需要让待删节点之前一个节点指向待删节点之后一个节......
  • 编程路-基础提升-第八周-03
    模块与包模块与包其实就是借助外力和内力两种方式去更好,更方便的解决问题。了解模块系统模块和第三方模块系统的模块python自带的不需要下载直接导入就行第三方......
  • Harbor之https
    opensslgenrsa-outharbor-ca.keyopensslreq-x509-new-nodes-keyharbor-ca.key-subj"/CN=192.168.10.20"-days7120-outharbor-ca.crtroot@k-har:/apps/harbo......