在Express.js中使用PUT方法

Bra*_*don 16 javascript http node.js express

我正在尝试为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);
Run Code Online (Sandbox Code Playgroud)

当我使用邮递员发出PUT请求时,我得到一个"不能PUT/api/petshop"作为错误.我不明白为什么我不能PUT,或者出了什么问题.

hea*_*nds 15

您可能缺少实际的更新功能.您有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);
    }

}); 
Run Code Online (Sandbox Code Playgroud)

这个平均堆栈项目可以帮助您,因为它涵盖了我刚刚在这里为您的公司交换文章的CRUD功能.彼此彼此.


小智 5

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

将回调顺序更改为function(req, res)。不要使用function(res, req).