MCPcopy
hub / github.com/midwayjs/midway

github.com/midwayjs/midway @v4.2.1 sqlite

repository ↗ · DeepWiki ↗ · release v4.2.1 ↗
10,462 symbols 28,323 edges 2,906 files 363 documented · 3%
README

Midway Logo

Midway - 一个面向未来的云端一体 Node.js 框架

<a href="https://github.com/midwayjs/midway/blob/master/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
<a href=""><img src="https://img.shields.io/github/tag/midwayjs/midway.svg" alt="GitHub tag"></a>
<a href="#"><img src="https://github.com/midwayjs/midway/actions/workflows/nodejs.yml/badge.svg?branch=3.x" alt="Build Status"></a>
<a href="https://codecov.io/gh/midwayjs/midway/branch/master"><img src="https://img.shields.io/codecov/c/github/midwayjs/midway/master.svg" alt="Test Coverage"></a>
<a href="https://lernajs.io/"><img src="https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg" alt="lerna"></a>
<a href="https://github.com/midwayjs/midway/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
<a href="https://gitpod.io/#https://github.com/midwayjs/midway"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
<a href="https://github.com/midwayjs/mwts"><img src="https://img.shields.io/badge/code%20style-midwayjs-brightgreen.svg" alt="Code Style: MidwayJS"></a>
<a href="https://opensource.alibaba.com/contribution_leaderboard/details?projectValue=midway"><img src="https://img.shields.io/badge/Midway-%E6%9F%A5%E7%9C%8B%E8%B4%A1%E7%8C%AE%E6%8E%92%E8%A1%8C%E6%A6%9C-orange" alt="Leaderboard"></a>

English | 简体中文

资源

特性

  • 🐘 全功能:支持 Web 应用/Serverless/FaaS/微服务/小程序后端等多种场景,基于装饰器和依赖注入开发企业级应用
  • 🐦 前端集成:全新的云端一体应用研发体验,零 API 调用,使用 "React Hooks " 风格一体研发
  • 🐴 跨平台:支持部署至普通 Server 或 Serverless/FaaS 环境
  • 🐶 扩展:组件化扩展能力,另外支持使用 Koa/Express/Egg.js 生态插件
  • 🐂 示例: 官方提供多种场景的示例代码,方便开发者快速上手
  • 🛡 TypeScript 全面支持

描述

Midway 是一个适用于构建 Serverless 服务,传统应用、微服务,小程序后端的 Node.js 框架。

Midway 可以使用 Koa,Express 或 Egg.js 作为基础 Web 框架。它还提供了独立使用的基本解决方案,例如 Socket.io,GRPC,Dubbo.js 和 RabbitMQ 等。

此外,Midway 也适用于前端/全栈开发人员的 Node.js 无服务器框架。构建下一个十年的应用程序。可在 AWS,阿里云,腾讯云和传统 VM /容器上运行。与 React 和 Vue 轻松集成。 🌈

Demo

使用装饰器开发 Web 应用

import { Controller, Get, Provide } from '@midwayjs/decorator';

@Provide()
@Controller('/')
export class HomeController {

  @Get('/')
  async home() {
    return `Welcome to midwayjs!`;
  }
}

使用函数开发全栈应用

后端代码 src/apis/lambda/index.ts

import {
  Api,
  Get,
  Query,
  useContext,
} from '@midwayjs/hooks';

export default Api(
  Get(),
  Query<{
    page: string;
    limit: string;
  }>(),
  async () => {
    const ctx = useContext();
    return {
      page: ctx.query.page,
      limit: ctx.query.limit,
    };
  }
);

前端调用 src/page/index.tsx

import getArticles from './api';
const response = await getArticles({
  query: { page: '0', limit: '10' },
});
console.log(response); // { page: '0', limit: '10' }

手动调用

fetch('/api/articles?page=0&limit=10')
  .then((res) => res.json())
  .then((res) => console.log(res)); // { page: '0', limit: '10' }

快速上手

$ npm -v

## 选择模版
$ npm init midway

## 进入项目路径
cd my_midway_app && npm run dev

文档和社区

社区优秀示例展示

1、Cool-Admin - 一个很酷的后台权限管理框架

image

  • 官网:https://cool-js.com/

VSC Plugin

答疑

群里会有热心的朋友,也会有新版本发布推送。

贡献

请告知我们可以为你做些什么,不过在此之前,请检查一下是否有 已经存在的Bug或者意见

如果你是一个代码贡献者,请参考代码贡献规范。

谁在使用

image 你也想加 Logo ?可以点击 这里 添加。

License

我们的代码使用 MIT 协议,请放心使用。

FOSSA Status

Extension points exported contracts — how you extend this code

IProcessor (Interface)
(no doc) [32 implementers]
packages/bullmq/src/interface.ts
IWebMiddleware (Interface)
(no doc) [74 implementers]
packages/faas/src/interface.ts
AxiosLikeInstance (Interface)
(no doc) [6 implementers]
packages/api-bridge/src/index.ts
HeroServiceClient (Interface)
(no doc) [10 implementers]
packages/grpc/test/index.test.ts
IJob (Interface)
(no doc) [6 implementers]
packages/cron/src/interface.ts
Engine (Interface)
(no doc) [7 implementers]
packages/core/test/context/container.test.ts
IPiscinaTask (Interface)
(no doc) [28 implementers]
packages/piscina/src/interface.ts
CommandRunner (Interface)
(no doc) [72 implementers]
packages/commander/src/interface.ts

Core symbols most depended-on inside this repo

get
called by 1087
packages/core/src/interface.ts
Inject
called by 730
packages/core/src/decorator/common/inject.ts
Provide
called by 694
packages/core/src/decorator/common/provide.ts
getAsync
called by 597
packages/core/src/interface.ts
createHttpRequest
called by 547
packages/mock/src/client/http.ts
getApplicationContext
called by 425
packages/core/src/interface.ts
push
called by 408
packages/core/src/interface.ts
close
called by 400
packages/mock/src/creator.ts

Shape

Method 4,108
Class 3,904
Function 1,654
Interface 734
Enum 62

Languages

TypeScript100%

Modules by API surface

packages/core/src/interface.ts292 symbols
packages/swagger/test/parser.test.ts108 symbols
packages/tablestore/src/interface.ts100 symbols
packages/core/src/error/framework.ts65 symbols
packages/event-emitter/test/index.test.ts60 symbols
packages/web-koa/test/functional-parity.test.ts57 symbols
packages/commander/test/index.test.ts55 symbols
packages/core/src/error/http.ts52 symbols
packages/validation-joi/test/index.test.ts51 symbols
packages/core/test/context/container.test.ts49 symbols
packages/core/test/fixtures/circular_dependency.ts48 symbols
packages/api-bridge/src/index.ts47 symbols

Dependencies from manifests, versioned

@anthropic-ai/sdk0.92.0 · 1×
@apidevtools/swagger-parser11.0.1 · 1×
@apollo/server5.5.1 · 1×
@astrojs/check0.7.0 · 1×
@astrojs/react3.6.0 · 1×
@babel/plugin-proposal-decorators7.25.9 · 1×
@bull-board/api5.23.0 · 1×
@bull-board/ui5.23.0 · 1×
@docusaurus/core3.9.2 · 1×
@docusaurus/module-type-aliases3.9.2 · 1×
@docusaurus/plugin-content-blog3.9.2 · 1×
@docusaurus/preset-classic3.9.2 · 1×

Datastores touched

(mongodb)Database · 1 repos
test1Database · 1 repos
(mysql)Database · 1 repos

For agents

$ claude mcp add midway \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact