在Express.js中使用PUT方法

我试图实现一个Express.js应用程序的更新function,我想使用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,或者出了什么问题。

您可能缺乏实际的更新function。 您有放置path将结果返回给客户端,但是当您告诉数据库更新数据时会丢失该部分。

如果你使用mongodb并expression,你可以写下如下的东西:

 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); } }); 

这意味着堆栈项目可以帮助你,因为它涵盖了我刚刚在这里使用的CRUDfunction,为你的公司交换他们的文章。 彼此彼此。

你有没有检查出你的头信息? 因为标题应该是header['content-type'] = 'apllication/json'; 那么只有你会在服务器端获得更新对象(node-express),否则如果你有内容types的纯文本/ HTM,你会得到empty req.body在节点。