Как правильно сохранить документ Mon goose? - PullRequest
1 голос
/ 07 мая 2020

заранее благодарим за внимание к этому симпатичному c вопросу! В настоящее время я работаю над проектом FreeCodeCamp с участием Node, MongoDB и Mon goose ( вот мой проект Glitch ), и я очень смущен тем, что происходит, когда я вызываю .save() на модель Mon goose. Вы можете увидеть полный контекст на Glitch, но вот конкретная c часть, которая ведет себя не так, как я ожидал:

const { User } = require("./models/user");

...

app.post("/api/exercise/new-user", (req, res) => {
  var newUser = new User({ name: req.body.username });
  newUser.save((error) => console.error(error));
  res.json({username: newUser.name, _id: newUser._id})
});

Вот models/user.js:

const mongoose = require("mongoose");

exports.User = mongoose.model(
  "User",
  new mongoose.Schema({
    name: { type: String, required: true }
  })
);

Я вижу в своем браузере ответ JSON с информацией, которую я ожидал, но я не вижу нового документа в своей базе данных на MongoDB. Что мне здесь не хватает? Насколько я знаю, когда я вызываю .save() на newUser, документ должен отображаться в MongoDB. В предыдущих проектах я делал именно это, и это работало, и я не могу понять, что изменилось в этой ситуации.

И более широкий вопрос, который у меня есть, который я не чувствовал, был объяснен в F CC учебный план: в какой момент коллекция создается в MongoDB с помощью Mon goose? Это когда я создаю новую модель? Как в этом месте моего кода:

const mongoose = require("mongoose");

exports.User = mongoose.model(
  "User",
  new mongoose.Schema({
    name: { type: String, required: true }
  })
);

Или это происходит, когда я go сохраняю экземпляр модели? Когда MongoDB сообщает о создании коллекции? Заранее большое спасибо!

1 Ответ

0 голосов
/ 07 мая 2020

Ну, я сделал это снова, ответ был очень прост. Я увидел, что при вызове mongoose.connect() я получал ошибку, потому что у него были проблемы с URI, начинающимся с mongodb+srv://, а не только с mongodb://. Затем я увидел, что, поскольку я разветвил стартовый проект из F CC, у него были некоторые устаревшие версии Mon goose и MongoDB, просто обновив эти две до самых последних версий (3.5.7 MongoDB и 5.9.12 of Пн goose) проблема решена, и теперь я могу правильно сохранять документы!

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