我通过 INDEX
向 DynamoDB
查询,从 API Gateway
请求成功,Postman
,但是通过 200 OK
(在 Axios
}} 客户端)代码(从 VueJS
导出)失败并显示以下错误:
Postman
以下是失败的 {"__type":"com.amazon.coral.validate#ValidationException","message":"1 validation error detected: Value null at 'tableName' failed to satisfy constraint: Member must not be null"}
代码,它由 Axios
生成(只是稍作修改以隐藏 URL):
Postman
是否有 let url = 'local/api/prospect'
var data = JSON.stringify({
"TableName":"my-table",
"ExpressionAttributeNames":{"#lang":"LANGUAGE"},
"ExpressionAttributeValues":{
":m":{"S":"Acet"},
":c":{"S":"CH"},
":l":{"S":"DE"}},
"FilterExpression":"begins_with(MAT_DESC, :m) and COUNTRY = :c and #lang = :l"
});
var config = {
method: 'post',
url: url,
headers: { 'Content-Type': 'application/json' },
data: data
}
this.$axios(config)
在内部执行的某些操作可能导致此请求成功但生成的 Postman
请求不包括?
更新
我不知道为什么会这样,但是这段代码似乎已经解决了问题...
NodeJS
如果有人能明确地告诉我这是为什么,请在下面回答。
这归结为请求的格式。以下是格式化数据的正确方法:
var data = JSON.stringify({
TableName: 'prospect-materials',
ExpressionAttributeNames: {'#lang':'LANGUAGE'},
ExpressionAttributeValues:{
':m':{S:'Acet'},
':c':{S:'CH'},
':l':{S:'DE'}},
FilterExpression: 'begins_with(MAT_DESC, :m) and COUNTRY = :c and #lang = :l'
})