创建服务

对于web开发者,服务端最重要的能力就是提供接口(API)给客户端调用,这也是框架重点发力的一个环节。通过安装特定的插件,我们就能快速地实现接口能力

安装

npmopen in new windownpmopen in new window

pnpm add @aomex/core @aomex/web @aomex/router
pnpm add typescript @types/node -D

脚本命令

@aomex/web内置了ts-nodeopen in new window,因此可以直接运行.ts文件

// package.json
{
  "scripts": {
    "start": "aomex-ts-node src/index.ts"
  },
  "dependencies": {}
}

监听端口

// src/index.ts
import { middleware } from '@aomex/core';
import { WebApp } from '@aomex/web';

const app = new WebApp();

// 挂载中间件
app.mount(
  middleware.web(async (ctx, next) => {
    await next();
    ctx.send(200, 'Hello world');
  }),
);

// 启动node服务
app.listen(3000, () => {
  console.log('Server started');
});

接着在终端输入命令

pnpm start

打开浏览器访问:http://localhost:3000open in new window,不出意外你能看见一行文字Hello world。 恭喜,服务已经启动,等下我就告诉你如何写接口。

但是等等,我们找到了一个未知的东西middleware.web。这我得解释一下,middleware.pure的意思就是纯粹,它的context不依赖于任何一个应用平台,所以别妄想它会提示什么有用的TS类型给你。而middleware.web是定制的,它携带了apprequestresponse 等与web平台相关的属性和方法(在类型提示方面)。因此,如果不是制作通用的适用于各个应用的中间件,我建议你最好使用定制的中间件。

  • common -> middleware.pure
  • web         -> middleware.web
  • console   -> middleware.console