
Comment démarrer rapidement avec VUE3.0 : entrez dans l'apprentissage.
Aujourd'hui, lorsque j'apprenais Node j'ai trouvé que setHeader et writeHead dans Node/http sont très similaires. Ils peuvent tous deux définir des en-têtes de réponse.
Paramètres
réponse.setHeader(nom, valeur)Copier
http.ServerResponse renvoie l'objet de réponseet
définit un attribut unique pour l'en-tête de réponse.
Notez que
TypeError .Exemple de
réponse.setHeader('Content-Type', 'text/html') . setHeader('Set-Cookie', ['type=ninja', 'langue=javascript']) définit un attribut à plusieurs reprises
// renvoie content-type = text/html1.
réponse.setHeader('Content-Type', 'text/html')
réponse.setHeader('Content-Type', 'text/html1') 
paramètre
réponse.writeHead(statusCode, [statusMessage], [headers])
statusCode code d'état http
statusMessage message d'état (facultatif)
en-têtes objet d'attribut ou tableau (facultatif)
return http.ServerResponse renvoie l'objet de réponse

La fonction
est la même que celle setHeader
Notez
que plusieurs propriétés peuvent être définies. setHeader ne peut en définir qu'une seule
et ne peut être appelée qu'une seule fois.
Elle doit être appelée avant response.end()
du nom ou de la valeur du champ de propriété contenant un élément invalide. caractères entraîneront la levée TypeError .
Exemple
car writeHead renvoie C'est un objet ServerResponse, nous pouvons faire des appels en chaîne
const body = 'hello world';
réponse
.writeHead(200, {
'Content-Length' : Buffer.byteLength(corps),
'Type de contenu' : 'texte/plain'
})
.end(body); Content-Length est ici en octets, pas en caractères. Buffer.byteLength() est utilisé pour déterminer la longueur du texte.
Nodejs ne vérifiera pas si Content-Length est cohérent avec la longueur du texte transmis.
// Renvoie content-type = text/plain.
const serveur = http.createServer((req, res) => {
res.setHeader('Content-Type', 'text/html');
res.setHeader('X-Foo', 'bar');
res.writeHead(200, { 'Content-Type' : 'text/plain' });
res.end('ok');
}); writeHead a une priorité plus élevée que setHeader , et writeHead ne peut être appelé qu'une seule fois, donc lors de l'appel, considérez d'abord quels en-têtes ne changent pas souvent, puis appelez writeHead
si setHeader a été appelé pour définir l'en-tête, alors il le fera. transmettez-le à writeHead merge
Si cette méthode est appelée et response.setHeader() n'a pas été appelée), la valeur d'en-tête fournie sera écrite directement sur le canal réseau et ne sera pas mise en cache en interne. response.getHeader() ) sur l'en-tête ne produit pas les résultats attendus. Si l’en-tête doit être rempli de manière incrémentielle et potentiellement récupéré et modifié à l’avenir, utilisez plutôt response.setHeader() .
setHeader ne peut définir les en-têtes qu'un par un, writeHead peut définir plusieurs
setHeaders à la fois et peut être appelé à plusieurs reprises, writeHead ne peut être appelé qu'une seule fois, et
setHeader et writeHead apparaissent en même temps. writeHead a une priorité élevée.
writeHead peut définir des codes d'état et des informations d'état, setHeader ne peut pas être défini, seul l'en-tête peut être défini.