Comment définir l'emplacement de la réponse HTTP en-tête dans le cadre Express?
Comment définir le temps de réponse Location
en-tête HTTP dans l'Express? J'ai essayé cela, mais cela ne fonctionne pas:
Controller.prototype.create = function(prop, res) {
var inst = new this.model(prop);
inst.save(function(err) {
if (err) {
res.send(500, err);
}
res.location = '/customers/' + inst._id;
res.send(201, null);
});
};
Ce code est la persistance d'un nouveau document dans MongoDB, et sur la concurrence définit l'emplacement et envoyer un 201
réponse. Reçu cette réponse, pas de Location
en-tête est défini:
HTTP/1.1 201 Created
X-Powered-By: Express
Content-Length: 0
Date: Mon, 18 Feb 2013 19:08:41 GMT
Connection: keep-alive
MODIFIER: comme uʍop ǝpısdn (cool nick btw) réponse, res.setHeader
œuvres. Mais pourquoi res.emplacement
ne l'est pas?
OriginalL'auteur gremo | 2013-02-18
Vous devez vous connecter pour publier un commentaire.
de la configuration de
res.location
.res.location
est une fonction.OriginalL'auteur Jonathan Ong
La
res
objet exposesetHeader()
:Essayer qu'au lieu de
res.location
.res.location
(selon la documentation expressjs.com/api.html#res.location) ne l'est pas?location
n'est pas unproperty
, c'est une méthode. Voir @Johnathan Ong de réponse.Spécifiquement pour l'emplacement, vous pouvez utiliser res.position(), comme les autres intervenants ont dit. Mais pour d'autres en-têtes ou des en-têtes personnalisés, c'est res.set(), pas res.setHeader().
OriginalL'auteur slezica