express路由模拟实现,真的很简单

第一步、先实现express路由服务

服务文件register.js:


var url = require('url');

let express = () => {
    // 所有的路由都会注册在这里
    var Funcs = {};

    
    let app = (req, res) => {
        // 每一次调用app,都会从Funcs里面去查找这个方法,然后调用
        if (Funcs[url.parse(req.url).pathname]) {
            Funcs[url.parse(req.url).pathname](req, res);
        } else {
            // 如果不存在就返回页面不存在
            res.writeHead(200, { 'Content-Type': 'text/plain' });
            res.end('页面不存在');
        }
    }

    // 注册路由方法,全部放在F上
    app.register = (path, func) => {
        Funcs[path] = func;
        // console.log('register', F);
    }
    return app;
}
module.exports = express;

第二步 调用express

调用文件server.js:

// 这个写法就和express很相似了
var express = require("./register");
var app = express();

var http = require('http');

// 监听的是8081端口,那每次被调用都会回调app方法
http.createServer(app).listen(8081);


// 注册
app.register('/login', (req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('login');
})

// 注册
app.register('/resigster', (req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('resigster');
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值