вставлять новые данные в mongodb по маршруту Dynami c, используя mongoose - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть форма, которая добавляет дополнительную информацию для определенного пользователя c, моя схема содержит имя, пароль, адрес электронной почты и данные об образовании и образовании, которые не будут запрашиваться до того, как пользователь сначала создаст учетную запись. После регистрации пользователя он перенаправляет их на что-то вроде «localhost: 5000 / user / setting / 5c27381923csw123923» (последняя часть - идентификатор пользователя). Теперь я хочу добавить данные об образовании в коллекцию пользователей на моем mongodb.

form class="info" action="/users/setting" method="POST">
        <div class="fields">
            <div class="education">
                <label for="education">Education</label>
                <select name="education" id="education">
                    <option value="bachelor">bachelor</option>
                    <option value="Master">Master</option>
                    <option value="Phd">Phd</option>
                    <option value="Other">Other</option>
                </select>
            </div>
        </div>

        <button type="submit" class="signin-button">Submit</button>

    </form>

Мой маршрут публикации выглядит следующим образом:

router.post("/setting/:id", (req, res, next) => {
  const userid = req.params.id;
  const { education } = req.body;
  User.updateOne(
    { userid },
    { $set: { education } },
    (err) => {
      if (err) {
        throw err;
      } else {
        res.send("good");
      }
    }
  );
});

Когда я нажимаю кнопку "отправить", ничего не происходит быть измененным или вставленным. Что делать, если маршрут является динамическим c, например, "localhost: 3000 / user / setting / 5c2312327318273s", и попытаться вставить данные для этого указанного c идентификатора пользователя?

1 Ответ

0 голосов
/ 26 апреля 2020

Попробуйте изменить { userid }, на {_id: userid }.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...