探索 Midway:面向未来的 Node.js Serverless 框架
什么是 Midway?
Midway 是一个面向前端/全栈开发者的 Node.js Serverless 框架。它的设计理念是「为下一个十年构建应用」,支持 AWS、阿里云、腾讯云以及传统的 VM/容器部署。
核心特性
1. 统一的开发体验
Midway 提供与 Express/Koa 兼容的 API,让前端开发者能够平滑过渡到后端开发。
import { Inject, Controller, Get, Provide } from '@midwayjs/decorator';
import { Context } from '@midwayjs/koa';
@Provide()
@Controller('/api')
export class UserController {
@Inject()
ctx: Context;
@Get('/user')
async getUser() {
return {
id: 1,
name: 'Hongcai',
};
}
}2. 灵活的部署选项
# 部署到阿里云函数计算
npm run deploy -- --provider aliyun
# 部署到 AWS Lambda
npm run deploy -- --provider aws
# 部署到腾讯云
npm run deploy -- --provider tencent3. 组件化架构
Midway 采用组件化设计,可以按需引入:
@midwayjs/koa- Koa Web 框架@midwayjs/egg- Egg 框架兼容@midwayjs/faas- 函数计算@midwayjs/serverless-app- Serverless 应用
为什么选择 Midway?
| 特性 | Midway | 传统 Serverless |
|---|---|---|
| 本地开发 | 完整模拟云端环境 | 需要频繁部署 |
| 调试 | 支持热重载 | 困难 |
| 迁移成本 | 低 | 高 |
| 团队协作 | 前后端统一 | 分开维护 |
写在最后
Midway 为前端开发者打开了一扇通往后端开发的大门。在 Serverless 趋势越来越明显的今天,掌握这样一个框架能让开发者在云原生时代更具竞争力。
本文基于 GitHub 用户 denghongcai 的主要开源项目编写。