заранее благодарим за внимание к этому симпатичному 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 сообщает о создании коллекции? Заранее большое спасибо!