Проблема с сохранением данных в MongoDB
ПРЕДУПРЕЖДЕНИЕ: в использовании MongoDB я новичок, поэтому ошибка может быть максимально простой.
Пишу на Node.js, пакет, который я использовал - mongoose.
Файл index.js:
const mongoose = require("mongoose");
const MongoDB =
"mongodb+srv://[юзернейм]:[мойпароль]@nodedb.rbs7d.mongodb.net/shiftodb";
const User = require("./assets/models/userModel.js");
mongoose.connect(MongoDB);
mongoose.Promise = global.Promise;
const db = mongoose.connection;
db.on(
"error",
console.error.bind(console, "MongoDB connection error. Check the code again.")
);
db.once("open", () => {
console.log("MongoDB has been connected.");
console.log("created new model");
const user = new User({ name: "Alex" });
console.log("user", user);
});
Далее, в папке с проектом у меня находится папка assets, в ней папки models и sсhemas, в которых лежат модели и схемы соответственно.
Вот код файла userSchema.js:
const mongoose = require('mongoose')
const userSchema = mongoose.Schema({
name: String
})
module.exports = userSchema;
И файла userModel.js:
const userSchema = require("../schemas/userSchema.js");
const mongoose = require('mongoose');
const User = mongoose.model("User", userSchema);
module.exports = User;
Не думаю, что проблема в них, но все же. После того, как я запускаю файл через node index.js, все работает. Вот вывод в консоли:
(node:52144) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:52144) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new
Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
MongoDB has been connected.
created new model
user { _id: 5f06fd882bf05ccbb018617b, name: 'Alex' }
И вроде бы все хорошо, вот только в БД это не сохраняется.

Однако, индех _id использовался, и это записано.

В консоли mongo аналогичная ситуация. Скрин прикладывать не буду, ибо перебор. Вопрос: почему не добавляется в базу данных информация? Нужно использовать дополнительный метод, или же у меня где-то ошибка? Заранее спасибо за ответ.
Ответы (1 шт):
const user = new User({ name: "Alex" });
user.save(function (err, userAlex){/*...*/});
сохранить забыли =)
можно без callback user.save()
можно promiseLike user.save().then( userAlex => /*...*/ )