[英]Using the PUT method with Express.js
我正在嘗試為 Express.js 應用程序實現更新功能,並且我想使用 PUT 請求來發送新數據,但使用 PUT 時我不斷收到錯誤消息。 從我讀過的所有內容來看,這只是使用 app.put 的問題,但這不起作用。 我的路由文件中有以下內容:
send = function(req, res) {
req.send(res.locals.content);
};
app.put('/api/:company', function(res,req) {
res.send('this is an update');
}, send);
當我使用郵遞員發出 PUT 請求時,我收到“無法 PUT /api/petshop”作為錯誤消息。 我不明白為什么我不能 PUT,或者出了什么問題。
您可能缺少實際的更新功能。 您有將結果返回給客戶端的放置路徑,但在您告訴數據庫更新數據時丟失了該部分。
如果您使用 mongodb 和 express,您可以編寫如下內容:
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);
}
});
這意味着堆棧項目可能會幫助你,因為它涵蓋了這個 CRUD 功能,我剛剛在這里使用它為你的公司交換他們的文章。 彼此彼此。
您的回調函數的參數順序錯誤。
將回調的順序更改為function(req, res)
。 不要使用function(res, req)
。
此外,如果您想在put
或delete
重定向(以get
地址),則不能使用正常的res.redirect('/path')
,您應該使用res.redirect(303, '/path')
代替。 (來源)
如果沒有,您將收到Cannot PUT
錯誤。
你有沒有檢查過你的標題信息? 因為 header 應該是header['content-type'] = 'application/json';
那么只有你會在服務器端(node-express)獲得更新對象,否則如果你的內容類型是純“text/htm”,你的節點應用程序中會得到empty req.body
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.