Skip to content

Latest commit

 

History

History
executable file
·
70 lines (54 loc) · 2.13 KB

20. 11. 04. DynamoDB 사용하기.md

File metadata and controls

executable file
·
70 lines (54 loc) · 2.13 KB

DynamoDB 사용하기

Date: 2020년 11월 4일

List로 되어있는 Attribute에서 특정 인덱스의 객체만 수정/삭제 혹은 추가하는 방법.

기본적으로는 updateItem API를 사용하고, UpdateExpression을 좀 더 상세하게 쓰면 된다.

Update Expressions

List Attribute 다루기

  • 목록의 특정 객체 업데이트

    module.exports.update = (event, context, callback) => {
      const data = JSON.parse(event.body)
    
      const idx = event.pathParameters.photoIndex
    	const params = {
        TableName: 'feed',
        Key: {
          user: event.pathParameters.user,
          date: event.pathParameters.date
        },
        ExpressionAttributeNames: {
          '#comment': 'comment'
        },
        ExpressionAttributeValues: {
          ':tags': dynamoDB.createSet(data['tags']),
          ':comment': data['comment'],
        },
        UpdateExpression: `SET photos[${idx}].tags = :tags,
    													 photos[${idx}].#comment = :comment`
      }
    
      dynamoDb.update(params, (error, result) => {})
    }
  • 목록에서 객체 삭제

    module.exports.update = (event, context, callback) => {
      const data = JSON.parse(event.body)
    
      const idx = event.pathParameters.photoIndex
    	const params = {
        TableName: 'feed',
        Key: {
          user: event.pathParameters.user,
          date: event.pathParameters.date
        },
        UpdateExpression: `REMOVE photos[${idx}]`
      }
    
      dynamoDb.update(params, (error, result) => {})
    }

그리고... 로직이 바뀌어서 lambda로 사진 파일 여러 개를 받아서 이걸 분류해야 하게 되었는데 사진 여러 개 받기를 어떻게 해야 할지 정말 모르겠다 ㅜㅁ ㅜ

serverless framework에서 node.js로 하고 있어서 node.js의 레퍼런스들을 찾는 중인데 어떻게 어떻게 찾은 거 같은데 serverless에서 multipart/form-data를 지원하지 않는 건지...? 왜 Content-Type에 저거 넣으면 안되는 건지...? 헝엉엉