Mongoose でモデルを作成しようとすると、次のエラーが発生します。
[TypeError: 未定義のプロパティ 'options' を読み取れません]
何が原因なのかわからない
"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
});
//...
}
私はMongoに非常に慣れていません(そしてノードにはかなり慣れていません)が、エラーメッセージが何を意味するのかまったくわかりません。
スキーマでオプションが定義されていることは知っていますが、それがどのように未定義になるかわかりません。誰かが私を正しい方向に向けることができますか?
注 - これは元のコードから大きく切り取ったものです。これは一般的な構造です (実際には以下にいくつかのコードmongoose.Model('Cat...
がありますが、スキップされます。その直後にmongoose.Model
a さえ出力されないため、呼び出しによってエラーがスローされるためだと思います。console.log("Hello");
EDIT
Mongoose (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
// ...