node笔记_koa框架的路由

news2024/11/26 22:50:18

文章目录

    • ⭐前言
    • ⭐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.coloradmin.cn/o/538530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[网络安全]DVWA之XSS(Reflected)攻击姿势及解题详析合集

[网络安全]DVWA之XSS(Reflected)攻击姿势及解题详析合集 XSS(Reflected)-low level源代码姿势 XSS(Reflected)-medium level源代码姿势1.双写绕过2.大小写绕过 XSS(Reflected)-high level源代码str_replace函数 姿势 XSS(Reflected)-Impossible level源代…

ssh正反隧道(代理msf对icmp穿透监听)

ssh正向隧道: 就是将本地端口映射到远程上,相当访问本地端口就是访问远程的端口 正向 访问本地对应的是远程的端口 ssh -fNCL 本地ip:本地port:远程ip:远程port 用户远程ip/域名 实例: ssh -fNCL 192.168.222.128:90:192…

HTML的表单

前后端交互过程: 表单在 Web 网页中用来给访问者填写信息采集客户端信息,使网页具有交互的功能,用户填写完提交后,表单的内容就从客户端的浏览器传送到服务器上,经过服务器上程序处理后,再将用户所需信息传…

人机大战?——带你玩转三子棋(C语言)

TOC 1、前言 在学习完数组之后,我们就可以自己来实现一个简单游戏—三子棋了! 为了确保程序的独立性:我们创建了一个源函数game.c 和test.c,一个头文件game.h test.c——测试游戏 game.c——游戏函数的实现 game.h——游戏函数…

Redis缓存数据库(三)

目录 一、概述 1、Redis架构 2、AKF 3、CAP原则 一、概述 1、Redis架构 Redis 有哪些架构模式?讲讲各自的特点 单机版 特点:简单 问题: 1、内存容量有限 2、处理能力有限 3、无法高可用。 主从复制 Redis 的复制(replic…

python绘制散点图|散点大小和颜色深浅由数值决定

python绘图系列文章目录 往期python绘图合集: python绘制简单的折线图 python读取excel中数据并绘制多子图多组图在一张画布上 python绘制带误差棒的柱状图 python绘制多子图并单独显示 python读取excel数据并绘制多y轴图像 python绘制柱状图并美化|不同颜色填充柱子 python随机…

【嵌入式系统应用开发】FPGA——HLS入门实践之led灯闪烁

目录 1 HLS1.1 HLS简介1.2 HLS与VHDL/Verilog1.3 HLS优点与局限 2 环境配置3 HLS实例——Led点亮3.1 工程创建3.2 添加文件3.3 C仿真与C综合3.4 创建Vivado工程3.5 导入HLS生成的IP核3.6 添加实验代码3.7 编译生成获取结果 总结 1 HLS 1.1 HLS简介 HLS(High Level Synthesis)…

十大排序算法(上)直接插入排序、希尔排序、直接选择排序、堆排序

🌈目录 1. 排序的概念2. 常见的排序算法3. 排序算法的实现3.1 插入排序3.1.1 直接插入排序3.1.2 希尔排序(缩小增量排序) 3.2 选择排序3.2.1 基本思想3.2.2 直接选择排序3.2.3 堆排序 1. 排序的概念 排序,就是使一串记录&#xf…

阿里通义千问_VS_讯飞星火

今天终于获得阿里通义千问大模型体验授权,第一时间来测试一下效果,使用申请手机号登录(地址:https://tongyi.aliyun.com)后,需要同意通义千问大模型体验规则,如下图所示: 同意之后就…

【C++初阶】类与对象(中)之运算符重载 + 赋值运算符重载

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

CPU性能优化:Cache

CPU性能提升:Cache机制 随着半导体工艺和芯片设计技术的发展,CPU的工作频率也越来越高,和CPU进行频繁的数据交换的内存的运行速度却没有相应的提升,于是两者之间产生了带宽问题。进而影响计算机系统的整体性能。CPU执行一条指令需…

C++/PTA 至多删三个字符

至多删三个字符 题目要求解题思路代码总结 题目要求 给定一个全部由小写英文字母组成的字符串,允许你至多删掉其中 3 个字符,结果可能有多少种不同的字符串? 输入格式: 输入在一行中给出全部由小写英文字母组成的、长度在区间 […

关于摆摊气球的调研-网红气球

本章主要介绍一下最近网红气球: 最近看到很多摆摊的抖音视频,都在说卖气球很好,成本低,收益高,所以调研了一下,网红气球分好几种: a,飘空气球; b.手持网红气球 c.青蛙 首先介绍飘空…

文件上传,内容逻辑数组绕过(22)

uploadd 第十三关 这一关告诉我们的,有一些上传漏洞需要配合这个文件包含和加解密。 这个先在一个图片源码里面写入php后门的脚本代码 这里也可以手工注入到图片的源码里面来,手工注入,如果采用16进制打开这个图片,这个图片在…

okhttp篇4:RetryAndFollowUpInterceptor

在上一篇 okhttp篇3:RealCall_yolan6824的博客-CSDN博客 中讲到RealCall无论是在execute还是enqueue方法中,都是通过getResponseWithInterceptorChain方法获取Request对应的Response的。而getResponseWithInterceptorChain这个方法,又是通过…

基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程]

基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程] 0. 前言1. 资源信息获取函数——monitor.py2. UI界面——listen.py3. main.py4. 运行效果5. 编译 exe 程序6. 其他PyQt文章 0. 前言 利用 PyQt5 开发一个 windows 的资源监视助手,在使用虚…

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

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

Web 测试和 App 测试重点总结

单纯从功能测试的层面上来讲的话,App 测试、Web 测试在流程和功能测试上是没有区别的,但由于系统结构方面存在差异(web 项目,b/s 架构;app 项目,c/s 结构)在测试中还是有不同的侧重点内容&#…

ZED使用指南(八)Depth Sensing

ZED立体相机再现了人类双目视觉的工作方式。通过比较左眼和右眼看到的两种视图,不仅可以推断深度,还可以推断空间中的3D运动。 ZED立体相机可以捕捉到场景的高分辨率3D视频,通过比较左右图像之间的像素位移可以估计深度和运动。 深度感知 …

CTFHub-ctfhub-Git泄露-Log

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