Экспресс - Обновление не вступает в силу на базе данных MongoDB - PullRequest
0 голосов
/ 02 мая 2019

Мое обновление не работает.Не проблема базы данных, так как мое удаление работает.

Это мой маршрут обновления.

Можете ли вы помочь?Я использую console.log для печати значений в консоли.Все получают правильные значения.

Я попытался войти в систему через значения печати console.log во время «обновления».

C:\Personal\Books\Trials>node app.js
Trials is running on port 3000
Success Update
5cc86fa0b5e2143684378877
Jim4
{ _id: 5cc86fa0b5e2143684378877,
  fieldname: 'Jim3',
  fieldtype: 'string',
  fieldinputtype: 'textbox',
  __v: 0 }
app.put("/adminstudy/:id",function(req,res){
    studyfields.findByIdAndUpdate(req.params.id, req.body.fieldname, function(err, returnedstudyfield){
        if(err){
            console.log(err);
            res.redirect("/adminstudy");
        } else {
            console.log("Success Update");
            console.log(req.params.id);
            console.log(req.body.fieldname);
            console.log(returnedstudyfield);
            res.redirect("/adminstudy");
        }
    });
});

А вот моя форма, которая отправляется на обновлениеroute:

            <form action="/adminstudy/<%= editedstudyfield._id %>?_method=PUT" method="POST">
                <div class="form-group">
                    <input class="form-control" type="text" name="fieldname" value="<%= editedstudyfield.fieldname %>">
                </div>
                <div class="form-group">
                    <select name="fieldtype">
                        <option value="string">Text</option>
                        <option value="number">Number</option>
                    </select>
                </div>
                <div class="form-group">
                    <select name="fieldinputtype">
                        <option value="textbox">Text Box</option>
                        <option value="Textarea">Text Area</option>
                      </select>
                </div>
                <div class="form-group">
                    <button class="btn btn-lg btn-block btn-success" type="submit">UPDATE THIS STUDY FIELD</button>
                </div>
            </form>

Я ожидал обновления, но это не так.Любая помощь приветствуется.

Ответы [ 2 ]

3 голосов
/ 02 мая 2019

Параметр "update" должен быть объектом пар ключ-значение:

 { fieldname: req.body.fieldname }

(меня удивляет, что это не ошибка)

0 голосов
/ 02 мая 2019

Вы отправляете только строку в Монго. Я думаю, вам нужно отправить {fieldname: req.body.fieldname}

studyfields.findByIdAndUpdate(req.params.id, {fieldname: req.body.fieldname} ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...