第三章 Electron 使用Koa以及Koa-Router

这篇具有很好参考价值的文章主要介绍了第三章 Electron 使用Koa以及Koa-Router。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Koa是什么 👇 👇 👇

据网上的资料显示,Koa 是下一代的 Node.js 的 Web 框架。是express原班人马打造,同样用于构建服务端web application的。旨在提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础。扯这些没用的,它就是提供给我们构建API服务的。

二、Koa-Router是什么 👇 👇 👇

快捷式路由(app.get、app.put、app.post等), 命名URL参数 生成URL的命名路由,将路由与特定主机匹配,使用允许的方法响应OPTIONS请求,不允许支持405方法,不支持501方法,多路由中间件,多个可嵌套路由器,支持async/await。顾名思义,其实就和我们前端vue-router差不多。只是它做接口层面的匹配处理。

三、安装依赖 👇 👇 👇

yarn add koa koa-router

我当前的版本号

第三章 Electron 使用Koa以及Koa-Router

环境

第三章 Electron 使用Koa以及Koa-Router

四、编写路由 👇 👇 👇

非常的简单,我们只需要在方法里面进行逻辑处理,然后通过ctx.body进行一个响应。

const Router = require('koa-router');
// 如果添加了prefix前缀的话,接口访问就变成******/likeMusic/**
const router = new Router({ prefix: "/likeMusic" });

// ******/likeMusic/list
router.get('/list', async (ctx, next) => {
    ctx.body = {data: {
        name: '张三'
    }, status: 200};
})

router.post('/add', async (ctx, next) => {
    // ctx.req里面可以获取到我们前端丢过来的参数
    console.log('👉👉👉-----------------', ctx.req)
    ctx.body = {status: 200};
})

router.delete('/delete/:id', async (ctx, next) => {
    console.log('👉👉👉-----------------', ctx.params.id)
    ctx.body = {data: {message: '删除成功!'}, status: 200};
})

module.exports = router;

五、编写Koa 👇 👇 👇

koa的话也是非常简单。把刚刚编写好的router通过app.use注册以后。再配置一个404,就是没有再路由配置的请求路径都会返回404,最后通过app.listen进行启动,端口号是8088。

const Koa = require('koa');
const playlists = require('./playlists.ts')
const likeMusic = require('./like_music.ts') // 刚刚新增的likeMusic.ts文件
const app = new Koa();

function createKoaApp() {

    app.use(playlists.routes(), playlists.allowedMethods())
    app.use(likeMusic.routes(), likeMusic.allowedMethods()) // 注册

    app.use(async (ctx, next) => {
        await next();
        ctx.response.body = {
            status: 404,
        }
    });

    app.listen(8088, () => {
        console.log('👉👉👉-----------------KOA服务器已启动成功,端口号为: 45455')
    });
}

exports.createKoaApp = createKoaApp

六、启动 👇 👇 👇

接在我们在electron的main.ts中在合适的位置进行启动,为什么说合适,因为是demo所以我随意放置的,如果有需求做licenses的话,后期可以将Koa启动放置到授权通过的逻辑中。

const { app, BrowserWindow } = require('electron')
const path = require('path')
const remote = require("@electron/remote/main");
remote.initialize();
const { createKoaApp } = require('./router/koaApp.ts')
 
const NODE_ENV = process.env.NODE_ENV
let win
 
/**
 * @Description: electron程序入口
 * @Author: Etc.End
 * @Copyright: TigerSong
 * @CreationDate 2023-05-20 14:39:26
 */
const createWindow = () => {
    win = new BrowserWindow({
        icon: './public/logo.png',
        frame: false, // 去掉导航最大化最小化以及关闭按钮
        width: 1200,
        height: 800,
        minWidth: 1200,
        minHeight: 800,
        center: true,
        skipTaskbar: false,
        transparent: false,
        webPreferences: {
            nodeIntegration: true,
            contextIsolation: false,
            webSecurity: false,
        }
    })
 
    win.loadURL(
        NODE_ENV === 'development' ? 'http://localhost:5173/' : `file://${path.join(__dirname, '../dist/index.html')}`
    )
 
    if (NODE_ENV === 'development') {
        win.webContents.openDevTools()
    }

    // 启动Koa
    createKoaApp()
 
    remote.enable(win.webContents);
}
 
app.whenReady().then(() => {
    createWindow()
})
 
/**
 * @Description: 限制只能打开一个页面
 * @CreationDate 2023-05-20 14:35:52
 */
const gotTheLock = app.requestSingleInstanceLock()
if (!gotTheLock) {
    app.quit()
} else {
    app.on('second-instance', (event, commandLine, workingDirectory) => {
        if (win) {
            if (win.isMinimized()) win.restore()
            win.focus()
        }
    })
}
 
app.on('window-all-closed', function () {
    if(process.platform !== 'darwin') app.quit()
})

七、效果 👇 👇 👇

第三章 Electron 使用Koa以及Koa-Router

我是Etc.End。如果文章对你有所帮助,能否帮我点个免费的赞和收藏😍。

第三章 Electron 使用Koa以及Koa-Router

 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇文章来源地址https://www.toymoban.com/news/detail-470300.html

到了这里,关于第三章 Electron 使用Koa以及Koa-Router的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++多线程编程(第三章 案例1,使用互斥锁+ list模拟线程通信)

    主线程和子线程进行list通信,要用到互斥锁,避免同时操作 1、封装线程基类XThread控制线程启动和停止; 2、模拟消息服务器线程,接收字符串消息,并模拟处理; 3、通过Unique_lock和mutex互斥方位list 消息队列 4、主线程定时发送消息给子线程; 代码包含了XThread类(基类)、

    2024年02月15日
    浏览(36)
  • 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面

    通过 HL7 架构页面,可以导入和查看 HL7 版本 2 架构规范。要显示此页面,请从主页中选择互操作性 互操作 HL7 v2.x HL7 v2.x 架构结构。有关使用此页面的一般信息,请参阅在产品中使用虚拟文档中的“使用架构结构页面”。 HL7 模式页面提供了一个附加选项卡:消息类型。此选

    2024年02月15日
    浏览(43)
  • Linux第三章

    无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为:root(超级管理员) root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的(普通用户的权限,一般在其HOME目录内是不受限的,一旦出了HOME目录,大

    2023年04月26日
    浏览(54)
  • 第三章-运输层

    运输层协议为运行在不同主机上的进程之间提供逻辑通信,即从应用程序角度看两个主机好像直连一样,实际可能相隔万里 运输层协议是在端系统上实现的,而不是路由器,为什么这么强调,因为运输层会将应用报文划分为较小的块然后加上一个运输层首部来生成运输层报文

    2024年02月14日
    浏览(41)
  • 第三章 选择与循环

    程序员必备技能(思想):增量编写法。每写一部分代码要及时运行看结果是否正确,对于复杂程序很重要。 常用的运算符优先级: 逻辑非 ! 算术运算符 关系运算符 || 赋值运算符 单目运算符 逻辑非 ! 算术运算符 +、-、×、/、% 关系运算符 、、=、=、==、!= 逻辑运算符 、|

    2024年02月09日
    浏览(52)
  • 【计组】第三章练习

    4、设有一个具有20位地址和32位字长的存储器,问: (1)该存储器能存储多少个字节的信息? 220 × 32 bits = 1M × 4B = 4MB (220是2的20次方,上标打不出来…) (2)如果存储器由512K * 8位SRAM芯片组成,需要多少片? (1024K * 32)/(512K * 8) = 8 片 (3)需要多少位地址做芯片选择? 存

    2024年02月04日
    浏览(80)
  • 第三章:函数

    1.定义 设 x , y 是两个变量,x的变化范围是实数集D,如果对于任何的x∈D,按照一定的法则都有唯一确定的y值与之对应。则称变量y是变量x的函数。记为 y = f(x) 。称D为函数的 定义域 ,x为自变量,y为因变量。全体函数值的集合称为函数y的 值域 。 2.函数的表示方法 1. 公式

    2024年02月01日
    浏览(80)
  • 第三章-上网行为安全

    1)宽带滥用 2)上网难监管 3)信息泄露 4)网络违法 5)安全威胁 1)上网行为三要素:用户、流量、行为 2)功能需求 (AC的功能)-- 重点 用户认证 应用控制 网页过滤 行为审计 流量管理 应用选路 互联网上网行为管控 一体化网关 无线Wi-Fi管控营销 无线防共享上网 全网上

    2024年01月23日
    浏览(49)
  • 第三章nginx详解

    特点: 1,稳定性高。(没有apache稳定) 2,系统资源消耗地较低。(处理http请求的并发能力非常高,单台物理服务器可以处理30000-50000个并发请求) 稳定:一般在企业中,为了保持服务器的稳定,并发量的设置在20000个左右。占用内存2M左右。 nginx主要功能: 1,静态文件服

    2024年02月12日
    浏览(50)
  • 第三章 Elasticsearch简介

    Elasticsearch (后称为 ES )是一个天生支持分布式的搜索、聚合分析和存储引擎。 搜索引擎 全文检索引擎 分布式文档系统 分布式数据库 OLAP系统 分布式搜索中间件 不要去死背概念,概念应该作为一种辅助的手段帮助我们去理解一项技术或知识,总之,等你真正会用了,你就

    2024年02月06日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包