เซิร์ฟเวอร์ Express, Back-End, API [ปิด]

Aug 30 2020

สวัสดีฉันใหม่

  • เริ่มต้นด้วย React.js ด้วยตัวฉันเองเมื่อสามเดือนก่อนบน YT

  • ส่วนใหญ่เรียก API

  • API บางตัวได้รับการรักษาความปลอดภัยด้วยลายเซ็น
  • ไม่ทราบว่าการเรียก API ของฉันต้องอยู่บนเซิร์ฟเวอร์ไม่ใช่ใน React

  • รับข้อผิดพลาด CORS
  • ไม่รู้ว่าอะไรคืออะไรและจะแก้ไขคอร์ได้อย่างไร

  • เริ่มเรียนรู้ส่วนหลัง

ทุกวิดีโอบน YT:

  • ตัวยึด JSON
  • สวอป

  • ไม่มีวิดีโอที่มี React และ back-end
  • ไม่มีคำขอลงนาม POST จากวิดีโอเซิร์ฟเวอร์
  • เกือบจะยอมแพ้

วิธีแก้ไขข้อผิดพลาด CORS:

  • ตอนนี้ฉันรู้วิธีแก้ไข cors:
  • ด้วยพร็อกซีเพื่อแสดงใน package.json
  • เพิ่ม setupProxy.js ใน src
  • และ "app.use (cors ())" ใน Express server.js

แอปตอบสนองของฉัน:

  • ให้บริการตลอด 24 ชั่วโมงทุกวัน
  • จำเป็นต้องอัปเดตสถานะทุกๆ 3 วินาทีจาก API
  • จากนั้นเปรียบเทียบสถานะ - ข้อมูล (นั่นคือสูตรและฟังก์ชันลับบางอย่างที่ไม่สามารถเปิดเผยต่อสาธารณะได้หากทำได้หากต้องการซ่อนโค้ดบนเซิร์ฟเวอร์ด่วน js)
  • และดำเนินการที่เกี่ยวข้อง (การเรียก API ใหม่)

ส่วนคำถาม:

  • เป็นไปได้หรือไม่
  • แอปทำงานอย่างไรหากไม่มีใครอยู่ในเว็บไซต์
  • นั่นหมายความว่า Express server.js ยังคงมีชีวิตอยู่เสมอ
  • และ React UI จะมีชีวิตก็ต่อเมื่อมีคนเปิดเว็บไซต์เพื่อดูว่าเกิดอะไรขึ้นกับข้อมูล

  • จะปรับใช้ react-app ด้วย express ได้อย่างไร? ดีไหม:

https://dev.to/nburgess/creating-a-react-app-with-react-router-and-an-express-backend-33l3


  • โฮสต์อย่างไร - จะปรับใช้ที่ไหน? ในหน้า Github?
  • ทำการรันเซิร์ฟเวอร์ด่วนอัตโนมัติในการปรับใช้หรือฉันต้องการ "npm start" ในการโฮสต์
  • หรือเปิดแอปเป็นครั้งแรก (เปิดเว็บไซต์)
  • วิธีการทำงาน
  • ฉันต้องการ django ไหม

อะไรดีกว่า:

  • หากฉันตัดสินใจที่จะแชร์แอปของฉันกับผู้ใช้รายอื่น:
  • เพื่อมอบสำเนาของแอปตอบกลับให้พวกเขาและปรับใช้ด้วยตนเอง
  • หรือ
  • สร้างแอปสากลเพื่อให้ผู้ใช้แต่ละคนสามารถเข้าสู่ระบบและมีเซิร์ฟเวอร์ด่วนของตนเองพร้อมแดชบอร์ดรวมถึงข้อมูลและสถานะของตนเอง

  • หากแอปสากลดีกว่าก็ควรเรียนรู้สิ่งนั้น


ขอบคุณสำหรับคำถามใด ๆ ที่ได้รับคำตอบ


คำตอบ

HeaustAzure Aug 30 2020 at 09:21

เซิร์ฟเวอร์ทำงาน 24/7

เมื่อผู้ใช้ต้องการเข้าถึงหน้าของเว็บไซต์เซิร์ฟเวอร์จะส่งพิมพ์เขียวของหน้านั้น (html, css และ js ซึ่งในกรณีนี้สร้างขึ้นโดยโค้ดสร้าง react js ของคุณ) นั่นคือเวลาที่แอป react ของคุณมีชีวิตขึ้นมา

คุณมี Express สำหรับฝั่งเซิร์ฟเวอร์แล้วคุณไม่จำเป็นต้องใช้ django

ใช่การปรับใช้กับ heroku ก็ใช้ได้ มันจะดูแลเซิร์ฟเวอร์ แต่คุณจะต้องเพิ่มสคริปต์ใน package.json ของเซิร์ฟเวอร์เพื่อให้บิวด์ตอบสนองหากคุณยังไม่ได้อัปโหลดบิวด์การตอบสนองไปยัง heroku

"heroku-postbuild": "npm install --prefix client && npm run build --prefix client"

ที่นี่ไคลเอนต์คือโฟลเดอร์ที่คุณเก็บรหัสการตอบสนองไว้

หากไม่ควรเปิดเผยต่อสาธารณะคุณไม่ควรตั้งเป็นสถานะตอบสนอง

การใช้สิ่งที่เป็นสากลจะดีกว่าเพียงแค่สร้างระบบบัญชีที่มีเจ้าของเป็นสิทธิพิเศษและมี url ในรูปแบบของชื่อผู้ใช้www.website.com/ownerและเมื่อเสร็จแล้วเจ้าของทุกคนจะได้รับเว็บไซต์ในเวอร์ชันของตัวเอง

(มีการสอน MERN stack ที่ยอดเยี่ยมบน youtube โดยสื่อ traversy ที่ตอบคำถามส่วนใหญ่ของคุณ)