Как написать поле обновления API с использованием базы данных Mongodb - PullRequest
0 голосов
/ 24 августа 2018

Мои поля.

{
    "_id" : ObjectId("5b7f93224fc3b140983ea775"),
    "city" : "visakapatnam",
    "area" : "mvp",
    "zone" : "zone II",
    "ward" : "ward I",
    "status" : false,
    "createdAt" : ISODate("2018-08-24T05:09:54.279Z"),
    "updatedAt" : ISODate("2018-08-24T08:44:52.736Z"),
    "__v" : 0
}

поле каждой записи по умолчанию status:false на идентификаторе, как обновлять status:true мое требование используется на почтальоне http://localhost:3000/notes/5b7f96454fc3b140983ea775 это состояние идентификатора, как обновить true. Любой, пожалуйста, предложите обновить API.

 exports.findOne = function(req, res) {
    // Find a single note with a noteId
    Complaint.findById(req.params.noteId, function(err, note) {
        if(err) {
            console.log(err);
            if(err.kind === 'ObjectId') {
                return res.status(404).send({message: "Note not found with id " + req.params.noteId});                
            }
            return res.status(500).send({message: "Error retrieving note with id " + req.params.noteId});
        } 

        if(!note) {
            return res.status(404).send({message: "Note not found with id " + req.params.noteId});            
        }

        res.send(note);
    });
},

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Обновите ваш код, как показано ниже:

app.post('/api/todo', function(req, res) {

    if (req.body.id) {
        Todos.findByIdAndUpdate(req.body.id, { todo: req.body.todo, isDone: req.body.isDone }, function(err, todo) {
            if (err) throw err;

            res.send('Success');
        });
    }
});

Надеюсь, он будет работать для вас.

0 голосов
/ 24 августа 2018

Попробуй таким образом

app.patch('/todos/:id', (req, res) => {
  var id = req.params.id;
  var body = _.pick(req.body, ['text', 'completed']);

  if (!ObjectID.isValid(id)) {
    return res.status(404).send();
  }



  Todo.findByIdAndUpdate(id, {$set: body}, {new: true}).then((todo) => {
    if (!todo) {
      return res.status(404).send();
    }

    res.send({todo});
  }).catch((e) => {
    res.status(400).send();
  })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...