2013-09-03 6 views
8

के साथ पुट विधि का उपयोग करना मैं एक Express.js ऐप में अद्यतन कार्यक्षमता को कार्यान्वित करने की कोशिश कर रहा हूं, और मैं नया डेटा भेजने के लिए एक पुट अनुरोध का उपयोग करना चाहता हूं, लेकिन मुझे PUT का उपयोग करके त्रुटियां मिल रही हैं। मैंने जो कुछ भी पढ़ा है, वह ऐप.पूट का उपयोग करने की बात है, लेकिन यह काम नहीं कर रहा है। मैं अपने मार्गों फ़ाइल में निम्न है:Express.js

send = function(req, res) { 
    req.send(res.locals.content); 
}; 

app.put('/api/:company', function(res,req) { 
    res.send('this is an update'); 
}, send); 

जब मैं डाकिया का प्रयोग कर एक PUT अनुरोध बनाने के लिए, मैं एक एक त्रुटि के रूप में "नहीं डाल सकते हैं/API/petshop" मिलता है। मुझे समझ में नहीं आता कि मैं क्यों नहीं डाल सकता, या क्या गलत हो रहा है।

+1

डाकिया, 500 में क्या त्रुटि दिखाती है? 404? – wayne

+2

क्या आपने methodOverride() का उपयोग करने का प्रयास किया है? http://stackoverflow.com/a/8378414/918608 http://stackoverflow.com/a/14174177/918608 –

उत्तर

9

आपको वास्तविक अद्यतन फ़ंक्शन की कमी हो सकती है। आपके पास क्लाइंट को परिणाम वापस लौटने का पथ पथ है लेकिन डेटा को अपडेट करने के लिए डेटाबेस को बताते समय भाग खोना है।

app.put('/api/:company', function (req, res) { 
    var company = req.company; 

    company = _.extend(company, req.body); 

    company.save(function(err) { 
    if (err) { 
     return res.send('/company', { 
      errors: err.errors, 
      company: company 
     }); 
    } else { 
     res.jsonp(company); 
    } 

}); 

यह mean stack project के रूप में यह जो मैं सिर्फ यहां इस्तेमाल अपने कंपनियों के लिए अपने लेख की अदला-बदली के लिए इस CRUD कार्यक्षमता को शामिल किया गया आप मदद कर सकते हैं:

आप MongoDB का उपयोग करने और व्यक्त कर रहे हैं, तो आप की तरह कुछ लिख सकते हैं। वही वही।

+0

गलत क्रम में कॉलबैक में 'req' और' res' तर्क हैं? 'कार्य (req, res) 'होना चाहिए? http://expressjs.com/api.html#app.put.method – Akurn

+0

@Akurn, हाँ req res होना चाहिए। – danilodeveloper

-3

क्या आप अपने शीर्षलेख की जानकारी देख रहे हैं? चूंकि हेडर header['content-type'] = 'apllication/json'; होना चाहिए, तो केवल आपको सर्वर पक्ष (नोड-एक्सप्रेस) में अद्यतन ऑब्जेक्ट प्राप्त होगा, अन्यथा यदि आपके पास सामग्री प्रकार सादा पाठ/एचटीएम है तो आपको empty req.body नोड में मिलेगा।

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