如何在Express框架中设置位置响应HTTP标头?

gre*_*emo 18 http-headers node.js express

如何Location在Express中设置响应HTTP标头?我试过这个,但它不起作用:

  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);
    });
  };
Run Code Online (Sandbox Code Playgroud)

此代码将新文档持久保存到MongoDB中,并在竞争时设置位置并发送201响应.得到此回复,没有Location设置标头:

HTTP/1.1 201 Created
X-Powered-By: Express
Content-Length: 0
Date: Mon, 18 Feb 2013 19:08:41 GMT
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)

编辑:作为uʍopǝpısdn(酷尼克顺丰)回答,res.setHeader工作.但为什么res.location不呢?

Jon*_*Ong 28

你在设置res.location.res.location是一个功能.

res.location('/customers/' + inst._id)
Run Code Online (Sandbox Code Playgroud)


sle*_*ica 17

res对象暴露setHeader():

res.setHeader('Location', foo);
Run Code Online (Sandbox Code Playgroud)

尝试而不是res.location.

  • 特别是对于位置,您可以使用 res.location(),正如其他评论者所说。但对于其他标头或自定义标头,它是 res.set(),而不是 res.setHeader()。 (3认同)