提问者:小点点

将PUT方法与Express.js


我正在尝试对Express实现更新功能。js应用程序,我想使用PUT请求发送新数据,但我使用PUT时不断出错。从我所读到的一切来看,这只是一个使用应用程序的问题。放,但那不起作用。我的routes文件中包含以下内容:

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

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

当我使用postman发出PUT请求时,我得到一个“cannotput/api/petshop”作为错误。我不明白为什么我不能放,或者出了什么问题。


共3个答案

匿名用户

您可能缺少实际的更新功能。您拥有将结果返回给客户端的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功能,我刚刚在这里用它来交换他们的文章给你的公司。相同的。

匿名用户

回调函数的参数顺序错误。

将回调顺序更改为函数(req,res)。不要使用功能(res,req)

匿名用户

另外,如果您想在putdelete(到getaddress)中重定向,您不能使用普通res.redirect('/path'),您应该改为使用res.redirect(303,/path')。(来源)

如果没有,您将得到无法放入错误。