架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 832|回复: 3

【实战】node + koa2 + ts 创建一个 web 应用

[复制链接]
发表于 2023-9-24 12:27:19 | 显示全部楼层 |阅读模式
Koa 是由 Express 背后的团队设计的一个新的 Web 框架,旨在成为 Web 应用程序和 API 的更小、更具表现力和更强大的基础。通过利用异步函数,Koa 允许您放弃回调并大大提高错误处理能力。Koa 的核心中没有捆绑任何中间件,它提供了一套优雅的方法,使编写服务器变得快速而愉快。

官网:https://koajs.com/

GitHub 地址:https://github.com/koajs/koa

Koa2 和 Koa1 区别

koa2与koa1的最大区别是koa2实现异步是通过async/awaite,koa1实现异步是通过generator/yield,而express实现异步是通过回调函数的方式。

koa.png

Koa2 需要 Node v12.17.0 或更高版本才能支持 ES2015 和异步函数。

首先,下载安装 Node.js,地址:https://nodejs.org/dist/v18.18.0/node-v18.18.0-x64.msi,安装步骤略。

基于 Koa2 的 Web 项目

在电脑磁盘创建 mykoa 文件夹,然后进入到 mykoa 文件夹,通过 cmd 命令初始化项目,如下:

使用 npm 安装需要的包,命令如下:

koa:核心 HTTP 服务
koa-router:路由模块
koa-bodyparser:负责解析请求内容

koa-better-body vs. koa-body vs. koa-bodyparser 对比

QQ截图20230924121831.jpg

参考:https://npmcompare.com/compare/koa-better-body,koa-body,koa-bodyparser

对生成的 package.json 文件稍加修改,最终文件内容如下:

手动新建 tsconfig.json 文件,内容如下:

同时,创建 src/main.ts 文件,内容如下:

使用 npm run start 启动项目,通过浏览器打开,如下:

QQ截图20230924122126.jpg

通过 postman 发送 post 请求,如下:

QQ截图20230924122201.jpg

Docker 运行 Koa 项目

新建 Dockerfile 将项目打包成 docker 镜像,文件内容如下:

命令如下:


QQ截图20230924122454.jpg

启动一个 docker 容器,命令如下:

QQ截图20230924122642.jpg

(完)





上一篇:【转】SCI、CSSCI、SSCI 检索数据库
下一篇:curl 检测 https 证书有效期等信息
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2023-9-24 12:28:33 | 显示全部楼层
附上源码:


mykoa.zip (17.42 KB, 下载次数: 0, 售价: 10 粒MB)
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2023-9-24 12:51:24 | 显示全部楼层
在构建 docker 镜像的时候,可以通过如下命令在 build 完成之后,删除没有使用的依赖包,来减少镜像体积:



原来 node_modules 占用 50M,使用该命令后,只占用 2.6M
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2023-9-24 12:57:20 | 显示全部楼层
最新 Dockerfile 文件内容:


镜像大小减少了 40M

QQ截图20230924125622.jpg
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-27 19:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表