При отправке запроса DELETE в myurl / book /: bookID / delete с использованием почтальона возникает следующая ошибка:
{
"message": "Internal server error"
}
route
app.delete('/book/:bookID/delete', (req, res) => {
const params = {
TableName: BOOKS_TABLE,
Key: {
bookID: req.params.bookID
}
}
dynamoDB.delete(params, (error) => {
if (error) {
console.log(error)
res.status(400).json({ error: 'error' })
}
res.status(200).json( {"message": "works"} )
})
})
Отправка запроса GET или POST на другие мои URL-адреса работает нормально. Когда я пытаюсь отправить DELETE конечной точке удаления, я получаю эту ошибку. Я новичок в области серверов и aws, просто пытаюсь создать простой API для изучения технологии.
Это моя конфигурация без сервера:
serverless.yml
service: serverless-api
app: my-first-app
org: myname
custom:
tableName: 'book-table-${self:provider.stage}'
provider:
name: aws
runtime: nodejs12.x
stage: dev
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- { "Fn::GetAtt": ["BooksDynamoDBTable", "Arn" ] }
environment:
BOOKS_TABLE: ${self:custom.tableName}
resources:
Resources:
BooksDynamoDBTable:
Type: 'AWS::DynamoDB::Table'
Properties:
AttributeDefinitions:
-
AttributeName: bookID
AttributeType: S
KeySchema:
-
AttributeName: bookID
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:custom.tableName}
Проблема в моей конфигурации без сервера? Я ценю помощь всех!