【前端知识】Node——http模块&url模块的常用操作

一、创建简易Server

javascript 复制代码
const http = require('http');
const URL = require('url');

const HTTP_PORT = 8088;

const server = http.createServer((req, res) => {
    // req:request请求对象,包含请求相关的信息;
    // res:response响应对象,包含我们要发送给客户端的信息;
    const { headers, method, url } = req;
    console.log( headers, method, url);
});

server.listen(HTTP_PORT, () => {
    console.log(`🚀 Outman 服务器已启动,端口:${HTTP_PORT}`);
})

二、url相关处理

javascript 复制代码
const http = require('http');
const URL = require('url');

const HTTP_PORT = 8088;

const server = http.createServer((req, res) => {
    // req:request请求对象,包含请求相关的信息;
    // res:response响应对象,包含我们要发送给客户端的信息;
    const { headers, method, url } = req;
    console.log( headers, method, url);

    // url处理
    if(url === '/login'){
        res.end('hello outman');
    }else if(url === '/products'){
        res.end('products list');
    }else{
        res.end('error request');
    }

    // url带参解析(GET)
    const parseInfo = URL.parse(req.url);
    console.log(parseInfo);
    const { pathname, query } = URL.parse(req.url);
    const queryObj = URL.parse(query);
    console.log(pathname, queryObj);
});

server.listen(HTTP_PORT, () => {
    console.log(`🚀 Outman 服务器已启动,端口:${HTTP_PORT}`);
})

三、请求配置与监听

javascript 复制代码
const http = require('http');
const URL = require('url');

const HTTP_PORT = 8088;

const server = http.createServer((req, res) => {
    // req:request请求对象,包含请求相关的信息;
    // res:response响应对象,包含我们要发送给客户端的信息;
    const { headers, method, url } = req;
    console.log( headers, method, url);

    // req 配置 & 监听
    req.setEncoding('utf-8');
    // 监听获取body中的参数(POST)
    req.on('data', (data) => {
        console.log('data', data);
        const { username, password } = JSON.parse(data);
        console.log(username, password);
    });
    req.on('end', () => {
        console.log('传输结束');
    });
    res.end('outman msg')
});

server.listen(HTTP_PORT, () => {
    console.log(`🚀 Outman 服务器已启动,端口:${HTTP_PORT}`);
})

四、常用HTTP CODE

HTTP状态码 状态描述 信息说明
200 OK 请求成功
201 Created POST请求,创建新的资源
301 Moved Pemanently 请求资源的URL已经修改,响应中会给出新的URL
400 Bad Request 客户端的错误,服务器无法或者不进行处理
401 Unauthorized 未授权的错误,必须携带请求的身份信息
403 Forbidden 客户端没有权限访问,被拒接
404 Not Found 服务器找不到请求的资源
500 Internal Server Error 服务器遇到了不知道如何处理的情况
503 Service Unavailable 服务器不可用,可能处理维护或者重载状态,暂时无法访问
相关推荐
铅笔侠_小龙虾5 分钟前
深入理解 Vue.js 原理
前端·javascript·vue.js
西西学代码8 分钟前
Flutter---showCupertinoDialog
java·前端·flutter
川石课堂软件测试9 分钟前
自动化测试之 Cucumber 工具
数据库·功能测试·网络协议·测试工具·mysql·单元测试·prometheus
你的眼睛會笑11 分钟前
vue3 使用html2canvas实现网页截图并下载功能 以及问题处理
前端·javascript·vue.js
ZTLJQ22 分钟前
植物大战僵尸HTML5游戏完整实现教程
前端·游戏·html5
无光末阳38 分钟前
vue 环境下多个定时器的创建与暂停的统一封装
前端·vue.js
Hilaku40 分钟前
技术Leader的“第一性原理”:我是如何做技术决策的?
前端·javascript·面试
liyf41 分钟前
发布-订阅(Publish–Subscribe) vs 观察者模式(Observer Pattern)
前端
卓码软件测评41 分钟前
第三方媒体流压力测试:k6插件xk6-webrtc的使用来测试媒体流的性能
网络协议·测试工具·http·https·webrtc·ssl·媒体
云中雾丽1 小时前
Flutter 里的 Riverpod 用法解析
前端