Sommario
Il modo di lavorare di Nodo.js e di Esprimere è orientato a due aspetti fondamentali, il primo è che viene utilizzato un solo linguaggio di programmazione per raggiungere tutti gli obiettivi e il secondo è che le funzionalità che vengono sviluppate sono dello stile RIPOSO in modo che possiamo avere a Back-end che è indipendente e quindi qualsiasi tipo di Fine frontale.Per sviluppare con successo il secondo punto dobbiamo avere diverse cose chiare, ma la più importante è capire l'oggetto richiesta che cosa c'è che non va Esprimere e come funziona quando lo si incorpora nelle nostre applicazioni, in questo modo possiamo acquisire diversi tipi di dati inviati dall'utente senza dover passare attraverso processi ingombranti.
Una delle prime cose che dobbiamo fare è capire cosa riceve e non riceve la nostra applicazione, per questo spiegheremo i metodi HTTP ma non dal punto di vista della definizione di quei concetti poiché si tratta di un argomento alquanto distante, se non da un punto di vista interno.
I nostri browser hanno due modi per inviare dati direttamente a un'applicazione, questi sono OTTENERE sì INVIARE, il primo i dati viaggiano attraverso il URL e sono pubblici, il che lo rende speciale per la consultazione e la costruzione di Permalink, ovvero collegamenti unici con cui effettuare richieste.
Il metodo INVIARE viaggia di soppiatto, nel senso che un utente non può vedere direttamente ciò che viene inviato. Con l'emergere di strumenti eseguire il debug Nei nostri browser possiamo già vedere facilmente queste informazioni, possiamo anche fingere l'invio di dati da alcuni strumenti INVIARE.
C'è una menzione separata che dobbiamo fare, il fatto che il browser invii direttamente solo questi due metodi alla nostra applicazione non significa che non possiamo usarne altri, ed è qui che Ajax è al centro della scena, poiché attraverso di esso possiamo fare richieste o Richiesta HTTP di altro genere, al fine di gestire il tutto attraverso il suddetto protocollo.
Un'altra forma di dati che viaggia attraverso il nostro browser e che non sono necessariamente informazioni sull'utente sono le intestazioni che hanno molteplici usi, ma sostanzialmente sono dati che ci consentono di identificare il browser e le risposte che sta aspettando.
EsempioAd esempio, se il browser vuole scaricare contenuto sotto forma di testo normale perché la nostra applicazione lo ha organizzato in questo modo, dobbiamo assicurarci che quando viene effettuata la richiesta venga elaborata con l'intestazione di testo normale, quindi generiamo una risposta che il browser può interpretare in questo modo.
Ma non solo, la nostra applicazione può anche rispondere con intestazioni che il browser interpreta in modo tale da poter limitare, mostrare o eseguire qualsiasi altra azione compatibile sul risultato che l'utente sta vedendo.
Ad esempio se non vogliamo un browser specifico (Internet Explorer) vedere la nostra applicazione, prendiamo semplicemente l'intestazione che ci invia la richiesta iniziale e attraverso l'elaborazione della richiesta del agente utente la nostra applicazione decide se mostrare o meno i risultati a detto browser.
L'oggetto richiesta È il modo più semplice e dettagliato che abbiamo dentro Esprimere per poter manipolare le richieste che si generano nell'uso della nostra applicazione, quindi con questo oggetto possiamo catturare le intestazioni, i dati inviati dall'utente, e anche i dati inviati da Ajax. Nel Esprimere possiamo usare diversi elementi appartenenti all'oggetto richiesta Per la manipolazione dei dati, vediamo quelli più utili e la relativa spiegazione:
req.paramsQuesto oggetto ci permette di ottenere i percorsi, i nomi e i loro parametri, viene utilizzato per ottenere più di tutti i dati inviati da una sezione della nostra applicazione.
req.param.nameQuesto oggetto ci permette di ottenere il valore di una particolare spedizione sia tramite INVIARE o OTTENERE, è molto utile ricevere solo uno dei valori.
richiesta.queryQuesto è molto utile per ottenere il stringa della domanda di un URL, di solito è abbinato al metodo OTTENERE e i valori si ottengono come configurazione chiave-valore, anche questo oggetto può essere utile per riempire qualche tipo di Database in stile redis per citarne alcuni.
req.bodyQuesta specificazione del nostro oggetto ci permette di catturare il contenuto di una richiesta fatta con il metodo INVIARETuttavia, per utilizzare normalmente questo oggetto nella nostra applicazione abbiamo bisogno di a middleware per essere in grado di acquisire questi dati in modo da poterli elaborare.
req.headersQuesto oggetto riceve le intestazioni dal client, ovvero ciò che abbiamo spiegato in precedenza sarebbero i dati inviati dal browser.
req.xhrA questo scopo possiamo determinare che tipo di richiesta stiamo ricevendo, così possiamo sapere che era un Ajax o una normale richiesta dal browser, con questo sapremo che tipo di trattamento dobbiamo fare secondo la logica della nostra applicazione.
req.urlCon questo possiamo ricevere l'URL del client, quindi otterremo il percorso specifico che sta raggiungendo la nostra applicazione.
Vediamo nell'immagine seguente alcuni esempi di come possiamo utilizzare in Express i diversi oggetti di richiesta che abbiamo definito in precedenza:
INGRANDIRE
Come vediamo l'oggetto richiesta viene utilizzato ricevendo direttamente nella generazione del percorso della nostra applicazione, sia nel metodo INVIARE o OTTENERE, Possiamo accedere direttamente a questo oggetto e anche dopo averlo usato possiamo chiamare una risposta, che ci porta al punto successivo del nostro tutorial.Sebbene questo tutorial riguardi l'oggetto richiesta, l'oggetto risposta va di pari passo con questo, poiché una volta ricevuta una richiesta la cosa più logica da fare è inviare una risposta e come tale dobbiamo usare un metodo particolare per farlo. Vediamo di seguito i metodi più importanti che possiamo usare con l'oggetto response in Esprimere.
stato res. (codice)Questo è forse il più utile dei metodi che abbiamo in Esprimere, con il codice di risposta possiamo dire ad un browser se la richiesta che ha inviato era adeguata, se l'elaborazione è stata corretta, o se non ha il permesso di accedere a quel percorso con quella richiesta, questi codici che vengono gestiti sono numerici e standard, il più noto è il 200 accettazione, seguito da 404 che è una risorsa non trovata o il 500 che è un errore del server.
res.set (campo, valore)Con questo metodo possiamo inviare un valore all'intestazione del browser, tuttavia se ne sconsiglia l'utilizzo manuale.
risp.invia (corpo)Ci consente di inviare la risposta al browser o al client, viene utilizzato in combinazione con il metodo impostato, poiché il primo stabilisce il valore e con questo effettuiamo la spedizione, ad esempio sviluppando una specifica intestazione che vogliamo utilizzare.
res.json ()Questo metodo ci permette di inviare la nostra risposta sotto forma di JSON, come sappiamo o dovremmo sapere, questo è il formato di base che dobbiamo gestire quando lavoriamo con JavaScript poiché ci consente di inviare documenti in modo semplice e che possono essere utilizzati in altre lingue.
res.render (visualizza, & # 91, callback) '] Questo metodo ci permette di mostrare le viste di Esprimere, ad esempio quando creiamo un percorso e deve generare una vista il metodo render è incaricato di eseguire tale operazione.
Vediamo nell'immagine seguente alcuni esempi dell'oggetto risposta e come possiamo inviare le informazioni in modo appropriato al nostro client o browser.
INGRANDIRE
Qui nell'immagine notiamo come non abbiamo proprio bisogno di un oggetto richiesta per inviare i dati al cliente, ma possiamo anche vedere quanto sia sicuro l'oggetto risposta ci dà idee su come combinarlo con l'oggetto richiesta per realizzare cicli completi e avere un significato nella nostra applicazione.Sebbene tutta questa teoria sia molto densa, è meglio iniziare a capirla poiché alla fine ci consentirà di prendere decisioni migliori durante la creazione delle nostre applicazioni web create con Esprimere.
Con questo finiamo questo tutorial, come vediamo l'oggetto richiesta non funziona solo nell'ambiente o nell'ecosistema di Esprimere, poiché normalmente dipende da altre cose come il browser, i metodi HTTP e ovviamente ogni richiesta genera una risposta, lì entra in gioco l'oggetto risposta Se vogliamo che sia lui a eseguire l'azione successiva, con questo otteniamo un'interazione bidirezionale e quindi completiamo i cicli interni della nostra applicazione.