问题标签 [middy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
688 浏览

node.js - 使用 middy 允许自定义标题

我正在使用middy为我的 AWS lambda 代码处理中间件。下面是我的代码:

问题是,我的前端正在发送一个名为的自定义标头authorizationv2,当我的前端尝试向我的 AWS lambda 代码发送请求时,浏览器将显示此错误

Access to XMLHttpRequest at 'https://apiv2.website.com/data/list/' from origin 'http://admin.website.com' has been blocked by CORS policy: Request header field authorizationv2 is not allowed by Access-Control-Allow-Headers in preflight response.

所以我假设要解决这个问题,我需要middy允许自定义标头authorizationv2。我不完全确定如何使用 middy。

0 投票
1 回答
593 浏览

typescript - Middy with TypeScript,回调类型

Middy我正在尝试在 Lambda API 调用中使用 TyepScript 。我的部分代码:

我尝试使用:

但我得到这个错误middy(myFunction)

callback我应该在myFunction的参数上使用什么类型?

0 投票
1 回答
156 浏览

javascript - JavaScript,在异步函数中返回函数回调

callback将函数中的async函数作为此代码返回是否存在任何性能问题?:

我正在使用Middy库,我认为这无关紧要,但以防万一。

0 投票
2 回答
472 浏览

javascript - Middy API,使用 jsonBodyParser 中间件返回对象

现在我必须以这种方式返回我的数据,使用以下代码:

但我收到一个错误作为回应:

所以我需要返回这个对象内的数据:

但我认为通过使用 middy 我不需要创建那个对象,它已经被字符串化并且里面还有一个 statusCode。我不想为 200、400、500 等手动设置每个 statusCode。有没有办法只return data将数据作为 javascript 对象?

0 投票
0 回答
63 浏览

node.js - 中间件必须是 middy 中的对象

在我的 middy 处理程序中,我尝试从https://www.npmjs.com/package/cls-proxify添加 setClsProxyValue

添加 -

处理程序中的一段代码抛出:

如果我删除 () => {} ,并只添加setClsProxyValue('requestId', 'testId'),它会抛出,

我也试过

  1. 如何解决这个问题?
  2. 如何在 middy 处理程序中访问相关性 ID/请求 ID?
0 投票
1 回答
505 浏览

node.js - 如何将插件应用于@middy/validator?

我正在使用 ajv 和这个@middy/validator中间件为无服务器端点编写验证模式。文档中有一条说明,中间件可以使用外部插件。但不清楚如何应用它们,也没有例子。我想ajv-errors为自定义错误消息使用插件,https://github.com/ajv-validator/ajv-errors

请给我一个关于如何应用外部插件的链接或给我一个例子。提前致谢!

0 投票
1 回答
260 浏览

node.js - Middy Node js + Serverless + AWS lambda:如何将单个处理程序用于多个端点?

我们在 node js 中有一个无服务器架构的项目。我们计划使用 Middy 来实现 AWS lambda 函数。我们的问题是我们不想为每个 api 端点创建单独的 lambda 函数,我们有非常大的应用程序,可能有超过 100 个 api 端点。

我们想以下列方式使用处理程序。例如:我们有管理用户的功能。它包括 api 端点,例如

  1. 添加用户
  2. 编辑用户
  3. 获取用户

我们希望使用单个 lambda 函数来使用所有这三个端点,因为所有三个 api 共享一些逻辑和模型。

0 投票
0 回答
84 浏览

node.js - 即使在使用 @middy/do-not-wait-for-empty-event-loop 之后,AWS 中的 Lambda 也会超时

我有一个问题,我有一个 lambda 处理程序,它调用一个中间件,该中间件解码 JWT 令牌并验证它并修改请求以添加解码的令牌,当我在本地调用我的 lambda 时一切正常,但在部署到 AWS 时它超时。我正在使用 SAM cli 工具在 AWS 中进行部署和资源创建。尝试对我的代码使用@middy/do-not-wait-for-empty-event-loop 但没有运气:(

处理程序代码:

中间件解码JWT:

即使在使用 @middy/do-not-wait-for-empty-event-loop 中间件之后,AWS 中的 Lambda 也会超时,尽管在日志中我仍然可以看到 request.context.callbackWaitsForEmptyEventLoop = false

Node.js 版本:v14.17.6

Middy 版本:v2.5.1

@middy/do-not-wait-for-empty-event-loop: v2.5.1

AWS 开发工具包版本:v2.799.0

0 投票
2 回答
56 浏览

node.js - 从自定义 lambda 自定义中间件返回错误

在过去的 3-4 小时里,我一直在尝试从自定义 @middy 中间件正确返回错误,但未成功

这记录:

在邮递员中,我收到空的正文和 502 错误。

这里有什么问题?PS:createError 来自@middy/util

0 投票
1 回答
240 浏览

node.js - 如何在测试文件中的函数上使用 middy 中间件?

我正在使用 sinon 在 nodejs 中编写一个测试文件,并且需要在函数调用中使用中间件,如下所示。

baseHandler.js

baseHandlerTest.js

错误

我需要在上面的测试文件中进行哪些更改,以便在app.baseHandler调用时,中间件开始验证?