美文网首页
koa2 手写简单实现路由功能

koa2 手写简单实现路由功能

作者: 灵魂旅者s | 来源:发表于2022-05-13 21:24 被阅读0次

实现目标:当客户端请求服务不同地址时,调用目录中不同html文件实现简单路由功能

步骤一:搭建简单koa服务

创建服务

步骤二:创建 拦截客户端访问不同路径的方法

route方法

步骤三:创建 访问真实文件的 render 方法

实现真实访问文件

步骤四:总体代码预览

const Koa = require('koa');

const app = new Koa();

// 使用fs模块实现流功能

const fs = require('fs');

async function render(page) {

    return new Promise((resolve, reject) => {

        //    比如你要访问你的文件夹名称 page

        let pageUrl = `./page/${page}`

        // 使用 fs 暴露出来的 readFile异步异步访问资源的方法

        fs.readFile(pageUrl, 'binary', (err, data) => {

            if (err) {

                reject(err);    

            } else {

                resolve(data);

            }

        })

    })

}

async function route(rul) {

    // 例如 你的目录有 这几个路径 index.html 404.html todo.html 。。。。。

    let page = '404.html'

    switch (url) {

        case '/':

            page = 'index.html';

            break;

        case 'index':

            page = 'index.html';

            break;

        case '/todo':

            page = 'todo.html';

            break;

        case '/404':

            page = '404.html';

            break;

        default:

            break;

    }

    let html = await render(page)

    return html;

}

app.use(async (ctx) => {

    // 先获取地址

    let url = ctx.request.url

    // route方法返回 html

    let html = await route(url)

    // 输出给客户端

    ctx.body = html;

})

app.listen(3000)

相关文章

  • koa2 手写简单实现路由功能

    实现目标:当客户端请求服务不同地址时,调用目录中不同html文件实现简单路由功能 步骤一:搭建简单koa服务 步骤...

  • koa2 自学笔记(二)

    此系列文章会持续更新。。。 这篇主要讲 koa2 的路由 首先,我们先用 koa2 原生实现一个简单的路由然后再使...

  • Koa 2 初体验(二)

    Koa2 路由 Koa2 原生路由的实现 路由在web中的作用不言而喻,而要先实现原生路由,需要的到地址栏输入的路...

  • 组件化开发-简单的路由

    路由原理 动手写一个SimpleRouter,这个路由很简单主要是实现逻辑。1.所有的Activity都注册到路由...

  • Android框架EasyRouter

    简单实现路由框架。EasyRouter有功能强大,实现简单,使用简单等有点,附链接 https://github....

  • 手写VueRouter简单实现hash路由

    vue-router用法 首先简单看看vue-router简单用法: 从上面代码可以看到,在route.js中导出...

  • 手写一个laravel(七) 路由实现

    手写一个laravel(七) 路由实现 创建Route/Router.php 为路由的实现类,实现get,any等...

  • Node.js中Koa2在控制台输出请求日志的方法

    Koa2真的是个很轻量的框架,轻量到路由都作为了模块单独了出来,Koa2也没有日志功能,如果我们需要有一些请求的日...

  • Vue路由的单页面应用

    VueJs路由的简单单页面应用: 1.路由的认识:传统的页面跳转是用超链接a来实现的,路由功能与它类似。路由将路径...

  • 关于koa2的基础知识

    1、koa2 路由配置 2、koa2 中的 get 传值以及获取 get 传值 在 koa2 中,GET 传值通过...

网友评论

      本文标题:koa2 手写简单实现路由功能

      本文链接:https://www.haomeiwen.com/subject/xmmuurtx.html