이것은 올바른 방법으로 사용하 AWS 글로벌 config 에서 JavaScript SDK?

0

질문

방법킷에 액세스할 수 있도록 구성되어 파업으로 나를 정말 이상했다. 할 수 있는 분명히 설정에 설정을 하나의 파일,그리고 당신은 필요가 없 export 구성된 AWS 체,당신은 단지 가져오기에서 바로 그것을 노드 모듈을 다시합니다. 나는 힘든 시간을 이해하는 데 문제가있는 방법/이동:

// config.js
const AWS = require('aws-sdk')
AWS.config.update({ region: 'us-east-2', signatureVersion: 'v4' })

그 다음에 다른 파일을 다시 가져오기 AWS 다음과 같이 config 마술 지팡이와 그것:

// some other js file
const AWS = require('aws-sdk') // look, I didn't import this from config.js!
const s3 = new AWS.S3() // it knows how to use the right region & signature!

왜 나는 수출 AWS 는 구성하고 가져오는 대신? 어떻게 구성을 복사할 때도 나는 그것을 가져 오기에서 내 config 파일입니까?

1

최고의 응답

2

는 경우를 살펴 본 코드에 당신이 볼 수 있는 AWS 체는 config 는 재산이 초기화됩니다.

이것은 본질적으로 단일 객체,그것은에 의존 모듈에 캐싱 에 Node.js.

서 라이브러리에 해당하는 개발용 docs:

캐싱

모듈 캐시 후 첫 번째 시간 그들이 로드됩니다. 이 (다른 것들 사이에)는 모든 통화가 필요하('foo')얻을 것이다 정확히 동일한 개체 반환하는 경우에,그 해결하는 동 파일입니다.

제공됩니다.캐시 수정하지 않는,여러 통화 필요('foo')가 발생하지 않는 모듈을 실행할 코드는 여러 다. 이것은 중요한 기능입니다. 으로,그는"부분적으로 완료"체 반환할 수 있고,따라서 수 있도록 전이 종속하는 수로드 도할 때 발생 주기입니다.

하는 모듈이 있는 코드를 실행을 여러 번,내보내기 기능 전화 하는 기능입니다.

2021-11-23 20:55:25

훌륭한 설명이 있습니다. 그것은 조금 불안정이기 때문에 나는 그렇게 사용하는 패턴을 사용하여 다른 사람이 가져오기>config>내보내는 다음을 사용하여 내보내는 개체의 나머지 부분에 걸쳐 귀하의 프로젝트입니다. 그것은 잘못된 느낌을 단지 구성하고 내보내지 않습니다. 이것은 어떻게 만들지 않은 경쟁 조건? 내 생각으로 구성에서 일어나는 실행 시간이 없?
Glenn

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................