Using the PUT method with Express.js
Solution 1
You may be lacking the actual update function. You have the put path returning the result back to the client but missing the part when you tell the database to update the data.
If you're using MongoDB and ExpressJS, you could write something like this :
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);
}
})
});
This mean stack project may help you as it covers this CRUD functionality which I just used here swapping their articles for your companies. same same.
Solution 2
Your callback function has the arguments in the wrong order.
Change the order of callback to function(req, res)
.
Don't use function(res, req)
.
Brandon
Updated on August 03, 2022Comments
-
Brandon almost 2 years
I'm trying to implement update functionality to an Express.js app, and I'd like to use a PUT request to send the new data, but I keep getting errors using PUT. From everything I've read, it's just a matter of using app.put, but that isn't working. I've got the following in my routes file:
send = function(req, res) { req.send(res.locals.content); }; app.put('/api/:company', function(res,req) { res.send('this is an update'); }, send);
When I use postman to make a PUT request, I get a "cannot PUT /api/petshop" as an error. I don't understand why I can't PUT, or what's going wrong.
-
wayne over 10 yearswhat error show in postman, 500? 404?
-
Josh C. over 10 yearsHave you tried using methodOverride()? stackoverflow.com/a/8378414/918608 stackoverflow.com/a/14174177/918608
-
-
Akurn over 8 yearsare the
req
andres
arguments in the callback in the wrong order? Should befunction(req,res)
? expressjs.com/api.html#app.put.method -
danilodeveloper over 8 years@Akurn, yes should be req res.