amazon-web-services - NodeJS AWS Lambda无服务器代理通过参数获取 - 放大
问题描述
我正在尝试使用无服务器快速代理应用程序向 lambda 发出请求。我使用放大 CLI 和为 lambda 选择的 CRUD 操作构建快速应用程序。
除了大量生成的代码之外,我还得到了这一行:
const hashKeyPath = '/:' + partitionKeyName;
然后将其添加到这样的 url app.get
:
app.get(path + hashKeyPath, function (req, res) {
res.json({
data: JSON.stringify(req.params),
dekor: JSON.stringify(
req.apiGateway.event.requestContext.identity.cognitoIdentityId
),
});
现在的问题是我的参数现在以冒号字符为前缀,:
如下所示:
https ://xxxxx.execute-api.eu-west-1.amazonaws.com/dev/address/:eu-west-1:xxx-8718 -42b9-b8b8-ce82e9d9e7a0
看到这个冒号字符/address/
和值之间。我无法摆脱它。hashKeyPath
如果我在尝试调用 api 网关时从我得到 404 中删除冒号字符。但是我需要参数的值不带冒号字符,当我这样做时,我确实得到了这个req.params
::eu-west-1:xxx-8718-42b9-b8b8-ce82e9d9e7a0
而不是eu-west-1:xxx-8718-42b9-b8b8-ce82e9d9e7a0
dynamoDB 中需要的分区值,但是由于前面的冒号,我没有从 dynamoDB 获得任何值。我该如何解决这个问题,所以路径在没有 hashKeyPath 的冒号字符的情况下工作?
解决方案
推荐阅读
- asp.net-core - ASP.NET 无法添加引用
- firebase - Flutter 中处理 Firebase 权限不足错误
- java - 如何在没有 location.reload() 的 POST 请求后刷新页面内容
- python - 熊猫如何根据索引值改变系列并保留其他系列值
- angular - 如何从 Angular 7 中的 url 字符串获取路由对象?
- java - 使用杰克逊反序列化包含 @JsonFormat(shape=JsonFormat.Shape.ARRAY) 和自定义对象的 json
- angular - 我的 Angular 应用程序使用 SSO 进行身份验证,它将标头中的用户详细信息返回给应用程序。如何解析传入的标头?
- oracle - 使用oracle正则表达式子字符串时检查表中是否存在值
- rails-activestorage - 即使在出错后也能保存主动存储附件
- javascript - 如何将数据从socket io显示到html页面列表