《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个基于渐进式理念研发的 Node.js 框架——Midway。
Midway 是阿里巴巴 - 淘宝前端架构团队,基于渐进式理念研发的 Node.js 框架,通过自研的依赖注入容器,搭配各种上层模块,组合出适用于不同场景的解决方案。
Midway 基于 TypeScript 开发,结合了面向对象(OOP + Class + IoC)与函数式(FP + Function + Hooks)两种编程范式,并在此之上支持了 Web / 全栈 / 微服务 / RPC / Socket / Serverless 等多种场景,致力于为用户提供简单、易用、可靠的 Node.js 服务端研发体验。
社区上也有很多类似的框架,那为什么还需要 Midway ?
原因有三点:
Midway 支持面向对象与函数式两种编程范式,你可以根据实际研发的需要,选择不同的编程范式来开发应用。
Midway 支持面向对象的编程范式,为应用提供更优雅的架构。
下面是基于面向对象,开发路由的示例:
// src/controller/home.tsimport { Controller, Get } from '@midwayjs/decorator';import { Context } from '@midwayjs/koa';@Controller('/')export class HomeController { @Inject() ctx: Context @Get('/') async home() { return { message: 'Hello Midwayjs!', query: this.ctx.ip } }}
Midway 也支持函数式的编程范式,为应用提供更高的研发效率。
下面是基于函数式,开发路由接口的示例:
// src/api/index.tsimport { useContext } from '@midwayjs/hooks'import { Context } from '@midwayjs/koa';export default async function home () { const ctx = useContext<Context>() return { message: 'Hello Midwayjs!', query: ctx.ip }}
—END—
开源协议:MIT
开源地址:
https://github.com/midwayjs/midway