首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Middy验证器来验证pathParameters和queryStringParameters?

如何使用Middy验证器来验证pathParameters和queryStringParameters?
EN

Stack Overflow用户
提问于 2022-06-10 10:07:29
回答 1查看 738关注 0票数 0

我使用TypeScript模板创建了一个全新的项目:

代码语言:javascript
复制
$ serverless create --template aws-nodejs-typescript --path demo

我编辑了tsconfig.json并启用了strictNullChecks,因为我更喜欢打开这个特性:

代码语言:javascript
复制
{
  "extends": "./tsconfig.paths.json",
  "compilerOptions": {
    "lib": ["ESNext"],
    "moduleResolution": "node",
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "removeComments": true,
    "strictNullChecks": true,
    "sourceMap": true,
    "target": "ES2020",
    "outDir": "lib"
  },
  "include": ["src/**/*.ts", "serverless.ts"],
  "exclude": [
    "node_modules/**/*",
    ".serverless/**/*",
    ".webpack/**/*",
    "_warmup/**/*",
    ".vscode/**/*"
  ],
  "ts-node": {
    "require": ["tsconfig-paths/register"]
  }
}

我编辑了模板生成的处理程序,以验证请求是否具有名为id的非空路径参数。

代码语言:javascript
复制
import middy from '@middy/core'
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'

async function lambdaHandler(event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> {
  if (event.pathParameters === null || event.pathParameters.id === null) {
    throw new Error("id path parameter is required but is null")
  }

  return {
    statusCode: 200,
    body: `Hello ${event.pathParameters.id} from ${event.path}`
  }
}
let handler = middy(lambdaHandler)

export default handler

如何使用Middy的验证器中间件来执行此验证?

EN

回答 1

Stack Overflow用户

发布于 2022-06-17 06:40:07

@middy/validatorajv的包装器,它使用JSON。

您的eventSchema可能如下所示:

代码语言:javascript
复制
{
  "type":"object",
  "properties":{
    "pathParameters":{
      "type":"object",
      "properties":{
        "id": { "type":"string" }
      },
      "required":["id"]
    }
  },
  "required":["pathParameters"]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72572518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档