koa框架学习记录(5)

简介: 一个前端学习koa的简单记录

Koa2原生路由实现
实现原生路由,需要得到地址栏输入的路径,然后根据路径的不同进行跳转。用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)

原生路由的实现需要引入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');
相关文章
|
JavaScript Go
异步加载 JS 的方法
异步加载 JS 的方法
350 156
|
移动开发 JavaScript 网络架构
vue3中vue-router使用(2)
Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举
568 156
|
JavaScript
vscode编辑器怎么用代码片段生成用户的文件模板?
vscode编辑器怎么用代码片段生成用户的文件模板?
1011 155
vscode编辑器怎么用代码片段生成用户的文件模板?
|
自动驾驶 机器人 大数据
我眼中的云栖大会
说实话,我之前真不知道云栖大会(请原谅我孤陋寡闻),我也是最近一个月才被同事邀请进入阿里云开发者社区的。在群里看到同事发的这个征文后我才知道的云栖大会。然后特意的去查询搜索了一下云栖大会。
1155 155
我眼中的云栖大会
|
前端开发 中间件
koa框架学习记录(4)
一个前端学习koa的简单记录
936 155
|
缓存 开发工具 git
git操作命令
今天工作中突然要是用git给本地仓库添加一个新的远程仓库,想不起来操作命令了 就去查了一下常用的操作命令
940 155
|
移动开发 JavaScript 网络架构
vue-router 基本使用
vue-router
439 155
|
安全 Java 编译器
java泛型
java 泛型
371 154
|
开发框架 前端开发 JavaScript
vue-resource插件使用
vue-resource 插件
405 155
|
JavaScript 前端开发
javascript闭包
javascript 闭包
320 154