2

I'm trying to create a todo-list app and checking it with POSTMAN on every type of request. GET and POST requests are working fine. But PUT and DELETE are not working as expected.

As expected means : It is not showing 404 neither showing results instead it's showing an error, i.e., Could not get any response.

Here's my code of put and delete :

var todos = [];

// DELETE /todos/:id

app.delete('/todos/:id', function(req,res){
    var todoId = parseInt(req.params.id, 10);
    var matchedTodo = _.findWhere(todos, {id: todoId});

    if(!matchedTodo){
        res.status(404).send();
    }else{
        todos = _.without(todos, matchedTodo);
        res.json(matchedTodo);
        //console.log(todos);
    }

});

// PUT /todos/:id

app.put('/todos/:id', function(req,res){

    var todoId = parseInt(req.params.id, 10);
    var matchedTodo = _.findWhere(todos, {id: todoId});
    var body = _.pick(req.body, 'description', 'completed');
    var validAttributes = {};

    if(!matchedTodo){
        return res.status(404).send();
    }

    if(body.hasOwnProperty('completed') && _.isBoolean(body.completed)){
        validAttributes.completed = body.completed;
    }else if(body.hasOwnProperty('completed')){
        return res.status(400).send();
    }

    if(body.hasOwnProperty('description') && _.isString(body.description) && body.description.trim().length > 0){
        body.description = body.description.trim();
        validAttributes.description = body.description;
    }else if(body.hasOwnProperty('description')){
        return res.status(400).send()
    }

    _.extend(matchedTodo, validAttributes);
    res.json(matchedTodo);



});

Now, I don't know if it's a bug or something.

marukobotto
  • 759
  • 3
  • 12
  • 26
  • what does your front end API call look like? [edit] nevermind that won't matter if you're testing in postman – Luke Schunk Dec 07 '15 at 03:32
  • are you making sure to pass in an ID into your URL for example `localhost:3000/todos/938502` – Luke Schunk Dec 07 '15 at 03:34
  • Possible duplicate of ["Could not get any response" response when using postman with subdomain](https://stackoverflow.com/questions/47806876/could-not-get-any-response-response-when-using-postman-with-subdomain) – Phoenix Oct 09 '19 at 10:36

1 Answers1

2

First, you should try the official tips:

  • The server couldn't send a response: Ensure that the backend is working properly
  • Self-signed SSL certificates are being blocked: Fix this by turning off 'SSL certificate verification' in Settings > General
  • Proxy configured incorrectly: Ensure that proxy is configured correctly in Settings > Proxy
  • Request timeout: Change request timeout in Settings > General

Second, normally official tip 2 will solve this problem. If not, you may use environment variables. You should confirm the link (shown in the picture, the protocol) can be accessed.

If not, you should check your environment variable's current value. If the current value is blank, you should fill in and set the options you've changed in official tips to default. And the problem should be solved now.

Rarblack
  • 4,559
  • 4
  • 22
  • 33
checink
  • 21
  • 3