Я создаю схему с mongoose, состоящую из объектов, имеющих переменную String и Boolean.
Мое намерение состоит в том, чтобы заполнить эту базу данных с помощью запросов на отправку из моего веб-приложения, отладки кода, который я проверил, что данные достигают конца, ОК.
Я сохраняю объект в базе данных, как показано здесь ниже.
Осматривая базу данных из консоли mongo, я обнаружил, что хотя новые объекты были добавлены в коллекцию, новый объект не имеет ни одного из атрибутов, указанных в схеме, скорее он просто имеет _id и два других значения по умолчанию.
Также заметил кое-что любопытное:
В предыдущих проектах, подобных этим, я обычно создавал схему и модель в отдельном модуле и экспортировал модель.
В этом проекте, однако, я экспортировал схему и создал модель из нее в моем файле основных маршрутов, как и в противном случае, всякий раз, когда я пытался создать новый объект из модели, сервер зависал с «todoModel не конструктор». Этого никогда раньше не было, и я не уверен, почему это происходит сейчас.
Я не уверен, что я делаю здесь неправильно в обоих случаях.
Запуск моего стека на локальном хосте.
MongoDB 2.6
Экспресс / Node.js
Создание схемы:
var mongoose = require("mongoose");
var hosts = require("./hosts.js");
const host = hosts["host"];
const port = hosts["port"];
mongoose.connect("mongodb://"+host+"/todoSite",{ useNewUrlParser: true },function(err){
if(err)
console.log(err);
else
console.log("Todo mongo connected");
});
var todoSchema = new mongoose.Schema({
text:String,
done: Boolean
});
//var todoModel = mongoose.model("todo",todoSchema);
module.Exports = todoSchema;
Post Route на сервере:
app.post("/",function(req,res){
var new_todo = new todoModel({"text": req.body.text,"done": false});
new_todo.save(function(err,todo){
if(err)
console.log(err);
else
console.log(todo);
});
});
{"_id": ObjectId ("5d223b54c772906a65603088"), "__v": 0}
Объекты в том виде, в каком они появляются в базе данных после "сохранения"