นี่คือวิธีที่ถูกต้องใช้ AWS โกลบอล config ในจาวาสคริปต์ SDK?

0

คำถาม

ทาง AWS ได้ปรับแต่งโจมตีฉันเป็นจริงแปลก คุณสามารถเห็นได้ชัดว่าตั้ง config อยู่ในแฟ้มเดียวแล้วคุณไม่ต้อง 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 ว่าฉันปรับแต่งค่าแล้วนำมันไปแทนงั้นเหรอ? ยังไงก็คือการปรับแต่งคัดลอกไปแม้แต่ตอนที่ฉันไม่ได้กำลังนำเข้าจากแฟ้มปรับแต่ง?

1

คำตอบที่ดีที่สุด

2

ถ้าคุณไปดูที่ห้อง ด้วยรหัสต้นทางของ คุณสามารถเห็นว่า AWS มีวัตถุ config เป็นทรัพย์สินซึ่งเป็นสามารถใช้ถอ.

นี่คือสิ่งจำเป็นอันเที่ยงตร singleton วัตถุมัน relies ใน ศูนย์ควบคุม kde ในโมดูล caching ใน Node.js.

จาก NodeJS docs:

Caching

ดูลงแคชข้อมูลหลังจากครั้งแรกที่พวกเขาเป็นงานหนักมากและไม่เคยหยุด นี่มันหมายความว่า (อื่นๆ)นั้นทุกสายจะต้องการ('foo')จะได้ เหมือนกันค้ากลับมาถ้ามันต้องแก้ไขเพื่อคนเดียวกัน แฟ้ม

ถ้าต้องการ.แคชของมันไม่ถูกแก้ไขหลายโทรศัพท์ ต้องการ('foo')จะไม่ใช่สาเหตุที่ศูนย์ควบคุม kde ในโมดูลรหัสจะต้องถูกประหารหลาย ครั้งแล้ว นี่เป็นสิ่งสำคัญวามสามารถของคุณสมบัติ. เรื่อง"บางส่วนของจบแล้ว"™à§à±à•à-à จะกลับมาแล้วดังนั้นปล่อยให้ transitive dependencies ที่จะโหลด แม้แต่ตอนที่พวกเขาจะราะใช้ได้แต่รอบ.

ต้องมีศูนย์ควบคุม kde ในโมดูลประมวลผลรหัสหลายครั้งแล้วส่งออกเป็นฟังก์ชันแล้ว เรียกมันว่าฟังก์ชัน.

2021-11-23 20:55:25

เยี่ยมคำอธิบาย มันคือหน่อยแย่เพราะฉันเคยใช้รูปแบบอื่นใช้ซึ่งมันนำเข้า>config>ส่งออกจากนั้นคุณใช้ที่ถูกส่งออกเป็นวัตถุทั้งส่วนที่เหลือของโครงการ. มันรู้สึกผิดไปก็แค่ทำ config และไม่ส่งออกมัน ยังไงมันไม่ทำสร้างการแข่งขันหน่อย ฉันเดาว่าตราบใดที่ the config เกิดขึ้นตอนวิ่งเวลามันไม่ได้?
Glenn

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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