2012-03-31 6 views
0

に起因して保存することはできません。マングースサポートエンティティは、私はマングース-サポートモデルのインスタンスを保存する上で助けが必要な(不思議な)「decodeInt」/ VirtualType /ゲッターエラー

node.js:134 
00:27:16 web.1  |   throw e; // process.nextTick error, or 'error' event on first tick 
00:27:16 web.1  |  ^
00:27:16 web.1  | TypeError: Cannot call method 'decodeInt' of undefined 
00:27:16 web.1  |  at model.<anonymous> (.../node_modules/mongoose-types/lib/plugins/useTimestamps.js:13:37) 
00:27:16 web.1  |  at VirtualType.applyGetters (.../node_modules/mongoose/lib/virtualtype.js:53:25) 
00:27:16 web.1  |  at model.get (... 

:エンティティを保存すると、次のエラーがスローされます

var instance = new TextSnippet(); 

    instance.text= req.query["text"]; 
    instance.context= req.query["ctx"]; 
    instance.url = req.query["url"]; 
    instance.position= ""; 
    console.log(JSON.stringify(instance)); 
    instance.save(function (err) { 
     console.log(err); 
    }); 
:モデル定義は

var mongooseTypes = require("mongoose-types"), useTimestamps = mongooseTypes.useTimestamps; 
mongooseTypes.loadTypes(mongoose); 

var Url = mongoose.SchemaTypes.Url; 

var Schema = mongoose.Schema 
    , ObjectId = Schema.ObjectId; 

var TextSnippetSchema = new mongoose.Schema({ 
    text_id : ObjectId 
    , text  : String 
    , context : String 
    , url  : Url 
    , position : String 
}); 

    TextSnippetSchema.plugin(useTimestamps); 
    var TextSnippet = mongoose.model('TextSnippet',TextSnippetSchema); 

新しいエンティティは次のようになります保存&を作成するためのコードです

私の理解には、「decodeInt」が必要なプロパティはありませんが、エンティティは保存できません。

私はオブジェクトの永続性を働かせてもらえますか?

答えて

1

問題は、mongodbがBinaryParserをもうエクスポートしないことにあります。 useTimestampsの インポートをこのようなものに変更する必要があります。

ファイル ./node_modules/mongoose-types/lib/plugins/useTimestamps.js

var mongoose = require('mongoose') 
    , ObjectID = mongoose.ObjectID 
    , BinaryParser = require('mongoose/node_modules/mongodb/node_modules/bson').BinaryParser; 

、あなたが行くように良いことがあります。これについても私はオーナーにパッチを提出します。

+0

ありがとう、この修正プログラムは私のために動作します。 あなたのパッチを所有者に提出しましたか? –

+0

私は修正を加えたいくつかの他の人々と一緒にいます。おそらくそれをフォークする時期です。 – speajus

関連する問題