15
มีเหตุผลใดที่จะไม่ไปจาก Javascript ฝั่งไคลเอ็นต์โดยตรงกับฐานข้อมูลหรือไม่?
สำเนาซ้ำที่เป็นไปได้: เขียนแอปพลิเคชัน“ เซิร์ฟเวอร์น้อยกว่า” บนเว็บ ดังนั้นสมมติว่าฉันจะสร้างโคลน Exchange Stack และฉันตัดสินใจที่จะใช้สิ่งที่ต้องการ CouchDB เป็นที่เก็บแบ็กเอนด์ของฉัน หากฉันใช้การพิสูจน์ตัวตนในตัวและการอนุญาตระดับฐานข้อมูลมีเหตุผลใดที่จะไม่อนุญาตให้ Javascript ฝั่งไคลเอ็นต์เขียนโดยตรงไปยังเซิร์ฟเวอร์ CouchDB ที่เปิดเผยสู่สาธารณะ เนื่องจากนี่เป็นแอปพลิเคชั่น CRUD และตรรกะทางธุรกิจประกอบด้วย "ผู้เขียนเท่านั้นที่สามารถแก้ไขโพสต์ของพวกเขา" ฉันไม่เห็นความต้องการมากที่จะมีเลเยอร์ระหว่างสิ่งที่ฝั่งไคลเอ็นต์และฐานข้อมูล ฉันเพียงแค่ใช้การตรวจสอบด้าน CouchDB เพื่อให้แน่ใจว่าไม่มีใครใส่ข้อมูลขยะและตรวจสอบให้แน่ใจว่ามีการตั้งค่าการอนุญาตอย่างถูกต้องเพื่อให้ผู้ใช้สามารถอ่านข้อมูล _user ของตนเองได้ การเรนเดอร์จะทำได้โดยฝั่งไคลเอ็นต์โดยบางสิ่งเช่น AngularJS โดยพื้นฐานแล้วคุณสามารถมีเซิร์ฟเวอร์ CouchDB และหน้าแบบ "คงที่" และคุณก็พร้อมที่จะไป คุณไม่จำเป็นต้องมีการประมวลผลด้านเซิร์ฟเวอร์ใด ๆ เพียงแค่สิ่งที่สามารถแสดงหน้า HTML ได้ การเปิดฐานข้อมูลของฉันสู่โลกดูเหมือนผิด แต่ในสถานการณ์นี้ฉันไม่สามารถคิดได้ว่าทำไมตราบใดที่การตั้งค่าการอนุญาตถูกต้อง มันขัดกับสัญชาตญาณของฉันในฐานะนักพัฒนาเว็บ แต่ฉันไม่สามารถคิดได้ด้วยเหตุผลที่ดี เหตุใดจึงเป็นความคิดที่ไม่ดี แก้ไข: ดูเหมือนว่ามีการสนทนาที่คล้ายกันที่นี่: การเขียนเว็บ "เซิร์ฟเวอร์น้อยกว่า" แอปพลิเคชัน แก้ไข: การอภิปรายที่น่าประทับใจจนถึงตอนนี้และฉันขอขอบคุณข้อเสนอแนะของทุกคน! ฉันรู้สึกว่าฉันควรเพิ่มสมมติฐานทั่วไปสองสามข้อแทนที่จะเรียกเฉพาะ …