2013-02-18 16 views
16

प्रतिक्रिया में Location HTTP शीर्षलेख कैसे सेट करें? मैं इस की कोशिश की है, लेकिन यह काम नहीं कर रहा:एक्सप्रेस फ्रेमवर्क में स्थान प्रतिक्रिया 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); 
    }); 
    }; 

इस कोड 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 

संपादित: ǝpısdn (शांत निक Btw) जवाब है, res.setHeader काम करता है uʍop के रूप में। लेकिन क्यों res.location नहीं है?

उत्तर

24

आप res.location सेट कर रहे हैं। res.location एक समारोह है।

res.location('/customers/' + inst._id) 
15

res वस्तु setHeader() को उजागर करता है:

res.setHeader('Location', foo); 

res.location के बजाय कि कोशिश करो।

+0

यह काम करता है। लेकिन क्यों 'res.location' (दस्तावेज़ीकरण के अनुसार http://expressjs.com/api.html#res.location) नहीं है? – gremo

+1

'स्थान'' संपत्ति 'नहीं है, यह एक विधि है। @ जॉननाथ ओंग का जवाब देखें। – slezica

+1

विशेष रूप से स्थान के लिए, आप res.location() का उपयोग कर सकते हैं, जैसा कि अन्य टिप्पणीकारों ने कहा था। लेकिन अन्य शीर्षलेखों या कस्टम शीर्षलेखों के लिए, यह res.set() है, res.setHeader() नहीं है। –

संबंधित मुद्दे