При попытке создать модель в Мангуста я получаю следующую ошибкуMongoose ошибка создания модели (с использованием Step)
[Ошибка типа: «варианты» Не удается прочитать свойство неопределенных]
Я понятия не имею, что нет заставляя его
"use strict";
var Step = require('step');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
function randomFunction() {
var categorySchema = new Schema({
id: Number,
name: String,
description: String
}, { collection: 'categories' });
var Category;
//...
mongoose.connect('mongodb://localhost/grouping');
new Step(
function() { //Connect to mongodb
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.on('open', this);
},
function() { //Create model
console.log(categorySchema); //Logs the schema object right
Category = mongoose.Model('Category', categorySchema);
},
function(err) {
console.log(err); //Error here
});
//...
}
Я новичок в Монго (и достаточно новый для узла), но я совершенно не знаю, что означает сообщение об ошибке.
Я знаю, что у меня есть параметры, определенные в схеме, но я не могу понять, как это будет неопределенно, может ли кто-нибудь указать мне в правильном направлении?
Примечание - это большой вырезать из исходного кода, это общая структура (есть на самом деле какой-то код ниже mongoose.Model('Cat...
, но она будет пропущена, я предполагаю, потому что ошибка возникает в mongoose.Model
вызова не даже console.log("Hello");
печатается сразу после него.
EDIT Я обнаружил, что внутри Mongoose (мангуст/Lib/document.js) пытается получить this.schema
, но это не определено
function Document (obj, fields, skipId) { //Line 37
this.$__ = new InternalCache;
this.isNew = true;
this.errors = undefined;
var schema = this.schema; //-> undefined
// ...
Вы уверены, что вы подключены к MongoDB, правильный код для подключения является 'mongoose.connect ('MongoDB: // хост/базы данных', функция (ERR) {console.log ('error occured', err);}); '? – drinchev
Я попробую, спасибо. Я обнаружил, что другой код подключения где-то работал лучше для меня, потому что он был разделен – Sam
Оказывается, я пропустил строку из моего вопроса, я добавлю ее в – Sam