简介
@jable/express-webapi 是一个基于 Node.js 平台的 Web API 框架,它结合了 Express 与 TypeScript 的特性,提供了一种快速开发高质量 Web API 的方式。
安装
你可以使用 npm 或者 yarn 安装该 npm 包:
npm install @jable/express-webapi
或
yarn add @jable/express-webapi
快速开始
创建项目
首先,需要创建一个新项目:
mkdir my-project cd my-project npm init -y
安装依赖
安装 @jable/express-webapi 和 TypeScript 依赖:
npm install --save-dev @jable/express-webapi typescript
配置 TypeScript
在项目根目录下,创建 tsconfig.json
文件:
-- -------------------- ---- ------- - ------------------ - --------- ------ --------- ----------- --------- --------- ------------ ---- -- ---------- ------------- ---------- ---------------- -
其中,target
表示编译后的代码版本,module
表示模块的方式,outDir
表示编译后代码的输出路径,sourceMap
表示是否生成对应的 sourcemap 文件。
新建 Controller
在项目根目录下,创建 src/controllers/HelloWorldController.ts
文件,并添加如下代码:
-- -------------------- ---- ------- ------ - -------- -------- - ---- ---------- ------ - ----------- --- - ---- ------------------------ --------------------- ------ ----- -------------------- - ------ ------------- -------- ---- ---------- ---- - ---------------- --------- - -
在此代码中,我们定义了一个路由 /hello
,并使用 @Get()
装饰器将其绑定到 getHello
方法上,当访问 /hello
路径时,会触发 getHello
方法,并返回字符串 Hello, World!
。
启动服务
在项目根目录下,创建 src/app.ts
文件,并添加如下代码:
import { Server } from '@jable/express-webapi'; import { HelloWorldController } from './controllers/HelloWorldController'; const port = 3000; const server = new Server([HelloWorldController]); server.listen(port, () => { console.log(`App is listening on port ${port}`); });
运行以下命令启动服务:
npx ts-node src/app.ts
在浏览器中访问 http://localhost:3000/hello
即可看到返回的 Hello, World!
。
高级用法
@jable/express-webapi 提供了丰富的装饰器和中间件,支持更加复杂的场景。
API 路径变量
-- -------------------- ---- ------- --------------------- ----- -------------- - ------------ ---------------- -------- ---- ---------- ---- - ----- - -- - - ----------- -- -- -- ------ -------------- -------- - -
以上代码中,我们定义了一个路由 /users/:id
,使用了变量 id
,并读取了该变量值作为参数。
验证请求参数
-- -------------------- ---- ------- --------------------- ----- -------------- - ------- ----------- ------- - --------- -------- -- - --------- ------- --------- ------ -- ---- --------- -- ---- - -- ------ --------------- - -
以上代码中,我们使用了 @Body()
装饰器获取 POST 请求的请求体,并通过 TypeScript 类型定义验证了请求参数的合法性。
使用中间件
-- -------------------- ---- ------- --------------------- ----- -------------- - ------------ ----------------------------- ---------------- -------- ---- ---------- ---- - ----- - -- - - ----------- -- -- -- ------ -------------- -------- - - -------- --------------------- -------- ---- --------- ----- -------------- ---- - -------------------- ------------- -------------- ------- -
以上代码中,我们使用了 @Middleware()
装饰器绑定了一个中间件,该中间件会在处理请求前打印请求日志。
结语
本文介绍了 @jable/express-webapi 的基本用法,并展示了一些高级用法,希望能对大家学习和使用该框架有所帮助。完整的示例代码可在 GitHub 上找到。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562d581e8991b448e0279