Υποενότητα 15.3: Αποστολή δεδομένων στον διακομιστή

Site: ΕΛ/ΛΑΚ Moodle
Course: WEB II - Προηγμένος σχεδιασμός
Book: Υποενότητα 15.3: Αποστολή δεδομένων στον διακομιστή
Printed by: Guest user
Date: Friday, 3 May 2024, 5:32 AM

Description

  • HttpClient.get
  • HttpClient.post

Εισαγψγή

Σε αυτήν την υποενότητα, θα μάθετε να στέλνετε και να αποθηκεύετε τις τιμές φόρμας στο db.json, έτσι ώστε να είναι διαθέσιμες ανά πάσα στιγμή.

Θα μάθετε πώς να διατηρείτε τις αλλαγές στα δεδομένα πίσω στο διακομιστή. Θα χρησιμοποιήσετε τη μέθοδο HttpClient.post που είναι διαθέσιμη σε αντικείμενα για να αποθηκεύσετε τα σχόλια που υποβάλλουν οι χρήστες στο διακομιστή.

Ενημέρωση feedback.service.ts

Ενημερώστε το αρχείο feedback.service.ts:

 addFeedbacks(fb: Feedback): Observable<Feedback[]> {
  return this.http.post<Feedback[]>(baseURL + 'feedback', fb);
}

Το HttpClient.post κατασκευάζει ένα παρατηρήσιμο Observable με προρυθμισμένο αίτημα POST και όταν στιγμιότυπο του Observable εγγραφεί -subscribed, το αίτημα POST εκτελείται στο διακομιστή.

Στη μέθοδο HttpClient.post πρέπει να περάσουμε τη διεύθυνση URL, το σώμα αίτησης και τις προαιρετικές επιλογές http, όπως κεφαλίδες, τύπος απόκρισης κ.λπ.

Η μέθοδος addFeedbacks είναι παρόμοια με αυτά που χρησιμοποιήσαμε στα getFeedbacks (). Η διαφορά είναι ότι εδώ χρησιμοποιούμε το post αντί get. Χρησιμοποιώντας αυτό μπορούμε να αποθηκεύσουμε την fb form group στο αρχείο JSON ως νέο μέλος της array.

Ενημέρωση contact.component.ts

Ενημερώστε το contact.component.ts file:

this.feedBackService.addFeedbacks(this.fb).subscribe(fb => this.feedbacks.push(this.fb));

Σημειώστε ότι εδώ χρησιμοποιούμε push. Το κάνουμε αυτό επειδή δεν παίρνουμε μόνο τις υπάρχουσες τιμές του αρχείου JSON αλλά προσθέτουμε καινούργιες.

Τα αποτελέσματα

Με τον προηγούμενο κώδικα ολοκληρωμένο, ανοίξτε το τερματικό σας και  μεταβείτε στον υποφακέλο jsonServer  και τρέξτε json-server --watch db.json -d 2000. Αυτό θα προκαλέσει καθυστέρηση 2 δευτερολέπτων προτού ο διακομιστής στείλει την απάντηση για το αίτημα. Ο διακομιστής θα εμφανίσει το αρχείο db.json για την εφαρμογή σας. Μπορείτε να παρακολουθήσετε το διακομιστή στη διεύθυνση URL του προγράμματος περιήγησης localhost:3000 

Ανοίξτε νέο παράθυρο στο τερματικό σας και  μεταβείτε στον υποφακέλο angularChocoYourname   και τρέξτε ng serve για να εκτελέσετε την εφαρμογή σας. Στο πρόγραμμα περιήγησης περιηγηθείτε στο URL localhost:4200 

Η σελίδα contact page έχει ανοίξει από τον json-server. 

Έχουμε αποθηκεύσει τα δεδομένα στο αρχείο db.json και μπορούμε να έχουμε πρόσβαση σε αυτά κάθε φορά!

Κάντε μια  Git commit με το μήνυμα "Angular storing data".