Как найти и обновить запись (MongoDB) по ее _id с помощью кнопки в ejs? - PullRequest
1 голос
/ 27 марта 2019

Я пытаюсь обновить запись в Mongodb, нажимая кнопку, отображаемую с использованием шаблонов ejs.У меня будет две кнопки, кнопка подтверждения, которая изменит атрибут «Зарезервировано» на «истина», а атрибут «запрошено» - на ложь.кнопка отклонения, которая изменит атрибуты «Зарезервировано» и «запрошено» на «ложь».

прямо сейчас, я работаю только над кнопкой «Принять», и ее идентификатор не действует.Вот часть сценария файла ejs:

<script>

          const button = document.getElementById('detal');         
                       button.addEventListener('click',function(e){
                           fetch('/dashboard/requests/details/5c951ade25d3c63298e8e8b2',{
                               method: "put",
                               headers : {
                               "Content-Type" : "application/json; charset=utf-8"
                           },

                           })  
                       });


           </script>

Сейчас я вставляю запись _id вручную, однако мне бы хотелось установить переменную _id в переменную и вставить ее в функцию выборки.

Это мой метод put в app.js:

app.put('/dashboard/requests/details/:id', function acceptReq(req, res){
    const reqID = req.params.id;
    var query = { _id: ObjectId(reqID)};
    console.log(reqID)

    db.getDB().collection(collection).findOneAndUpdate({query}, { $set: { 
        requested: false,
        requests:{
        user: undefined,
        time: undefined
        },
        Booked:true

        }}, { returnOriginal: false }, (err, result) => {
        if (err)
            console.log(err);
        else {
            req.flash(
            'success_msg',
            'Request Accepted!'
            );
            res.redirect('/dashboard/requests')
            }
    });
});

console.log напечатает reqID в моей консоли, однако, похоже, что обновление базы данных не происходит.Что я делаю не так?

...