koa2-7

Posted 小凡的耿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了koa2-7相关的知识,希望对你有一定的参考价值。

Koa2原生路由实现

 ctx.request.url

  要想实现原生路由,需要得到地址栏输入的路径,然后根据路径的不同进行跳转。用ctx.request.url就可以实现。我们通过一个简单的例子了解一下如何获得访问路径。

const Koa = require(‘koa‘)
const app = new Koa()
 
app.use( async ( ctx ) => {
  let url = ctx.request.url
  ctx.body = url
})
app.listen(3000)

  这时候访问http://127.0.0.1:3000/jspang/18 页面会输出/jspang/18。会了这个,我们就可以根据输出的不同,实现的页面结果。

 原生路由实现

  原生路由的实现需要引入fs模块来读取文件。然后再根据路由的路径去读取,最后返回给页面,进行渲染。我们看一个小例子进行学习。

const Koa = require(‘koa‘);
const fs = require(‘fs‘);
const app = new Koa();
 
function render(page){
   
   
        return  new Promise((resolve,reject)=>{
            let pageUrl = `./page/${page}`;
            fs.readFile(pageUrl,"binary",(err,data)=>{
                console.log(444);
                if(err){
                    reject(err)
                }else{
                    
                    resolve(data);
                }
            })
        })
    
}
 
async function route(url){
    
    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;
    let html = await route(url);
    
    ctx.body=html;
})
app.listen(3000);
console.log(‘starting at 3000‘);

 

以上是关于koa2-7的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数