node笔记_koa框架的路由

news/2024/10/18 0:26:23/

文章目录

    • ⭐前言
    • ⭐koa 原生路由写法
    • ⭐引入 koa-router
      • 💖 安装koa-router
      • 💖 动态读取路径文件作为路由
    • ⭐结束

⭐前言

大家好,我是yma16,本文介绍koa框架的路由。
往期文章
node_windows环境变量配置
node_npm发布包
linux_配置node
node_nvm安装配置
node笔记_http服务搭建(渲染html、json)
node笔记_读文件
node笔记_写文件
node笔记_连接mysql实现crud
node笔记_formidable实现前后端联调的文件上传
node笔记_koa框架的路由写法

⭐koa 原生路由写法

写两个路由分别是index、和designXml.xml
否则返回:home

const Koa = require('koa');
const app = new Koa();
const fs = require('fs')
app.use(async (ctx, next) => {await next();if (ctx.path === '/index' && ctx.method === 'GET') {ctx.body = 'index'}else if(ctx.path === '/designXml.xml' && ctx.method === 'GET'){ctx.response.type = 'xml';ctx.response.body = fs.createReadStream('designXml.xml');}else{// 默认ctx.body = 'home'}
});
app.listen(3000);

渲染结果:
router
缺点:每次都要进行判断就很不友好。

⭐引入 koa-router

💖 安装koa-router

npm install koa-router

示例:index路由

const Koa = require('koa')
const Router = require('koa-router')
const app = new Koa();
const router = new Router()
router.get('/index', (ctx, next) => {ctx.body = "index koa-router"
})
app.use(router.routes())app.listen(3000);

koa-router

💖 动态读取路径文件作为路由

创建路由目录结构

| 项目
|router|-- routes|-- home.js|-- model| -- home.js|index.js
|koa-server.js

index.js读取路径

const fs = require('fs')
module.exports = app => {// 读取当前路径下 moudle目录所有文件const baseDir=__dirname+'\\routes'fs.readdirSync(baseDir).forEach(file => {const router = require(`./routes/${file}`)app.use(router.routes()).use(router.allowedMethods())})
}

model/home.js

class HomeCtl {index(ctx) {ctx.body = '我是home'}
}
module.exports = new HomeCtl()

routes/home.js

const Router = require('koa-router')
const router = new Router()
const { index } = require('../model/home')
router.get('/', index)
module.exports = router

main入口 koa-server.js

// koa
const Koa = require('koa')
const app = new Koa();
// 引入 路由
const routing = require('./router')
// 使用
routing(app)app.listen(3000);

访问home成功!
home-router

⭐结束

本文介绍koa路由到此结束,如有错误或者不足欢迎指出!
💖 感谢你的阅读 💖

star


http://www.ppmy.cn/news/69813.html

相关文章

Java面向对象程序设计实验报告(实验三 继承的练习)

✨作者:命运之光 ✨ 专栏:Java面向对象程序设计实验报告 ​ 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录:源程序代码(带注释) demo3类 Person类 Student类 …

RK3568平台开发系列讲解(调试篇)debugfs 分析手段

🚀返回专栏总目录 文章目录 一、enable debugfs二、debugfs API三、使用示例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 上有一些典型的问题分析手段,从这些基本的分析方法入手,你可以一步步判断出问题根因。这些分析手段,可以简单地归纳为下图: 从这…

CTFHub-ctfhub-Git泄露-Log

CTFHub-ctfhub-Git泄露-Log 当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack完成本题 1、dirsearch扫描 github上下载dirsearch-master 命令F…

某大学信息安全竞赛——栈迁移加强版——只溢出0x8,无限ROP

芝士题目: 链接:https://pan.baidu.com/s/1uwFlcSg94MuC2tPi-HCb9w 提取码:joj6 感悟: 之前我只做过溢出超过0x10这样的栈迁移,思路就是找机会去泄露栈空间的地址然后把栈迁移到我们可以控制的栈空间,亦…

【vimsolo】让vim看起来像VSCode:颜色主题和状态栏的配置

文章目录 1. 目的2. 理念: vimsolo3. vimrc: 配置颜色4. vimrc: 配置状态栏5. 拷贝颜色主题和.vimrc: python安装脚本 1. 目的 习惯了 VSCode 默认的配色:黑色主题,蓝色状态栏。偶尔使用 Vim 时想让 vim 伪装的像 VSCode,不考虑花…

Verilog语法概述二:何为仿真?仿真可以在几个层面上进行?

Verilog 是一种用于数字逻辑电路设计的硬件描述语言,可以用来进行数字电路的仿真验证、时序分析、逻辑综合。 既是一种行为级(可用于电路的功能描述)描述语言又是一种结构性(可用于元器件及其之间的连接)描述语言。 …

方差分析 python中运行stata

方差分析 文章目录 方差分析[toc]1 单因素方差分析2 多因素方差分析 # 配置stata17在jupyter 配置 import stata_setup stata_setup.config(r"D:\Stata17\setup",se)1 单因素方差分析 from pystata import stata # 查看单因素方差分析命令介绍 stata.run("help…

springcloud基于web的智慧养老平台

系统分析 可行性分析 在开发系统之前要进行系统可行性分析,目的是在用最简单的方法去解决最大的问题,程序一旦开发出来满足了用户的需要,所带来的利益也很多。下面我们将从技术、操作、经济等方面来选择这个系统最终是否开发。 1、技术可行…