เซิร์ฟเวอร์ Express, Back-End, API [ปิด]
สวัสดีฉันใหม่
- เริ่มต้นด้วย 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 ไหม
อะไรดีกว่า:
- หากฉันตัดสินใจที่จะแชร์แอปของฉันกับผู้ใช้รายอื่น:
- เพื่อมอบสำเนาของแอปตอบกลับให้พวกเขาและปรับใช้ด้วยตนเอง
- หรือ
- สร้างแอปสากลเพื่อให้ผู้ใช้แต่ละคนสามารถเข้าสู่ระบบและมีเซิร์ฟเวอร์ด่วนของตนเองพร้อมแดชบอร์ดรวมถึงข้อมูลและสถานะของตนเอง
- หากแอปสากลดีกว่าก็ควรเรียนรู้สิ่งนั้น
ขอบคุณสำหรับคำถามใด ๆ ที่ได้รับคำตอบ
คำตอบ
เซิร์ฟเวอร์ทำงาน 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 ที่ตอบคำถามส่วนใหญ่ของคุณ)