我需要有关保存Mongoose支持的模型实例的帮助:保存实体会引发以下错误:
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 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);
创建和创建的代码保存一个新实体看起来像这样:
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);
});
根据我的理解,我没有属性,需要“decodeInt”:但是实体无法保存。
请帮助我让对象持久性为我工作?
答案 0 :(得分: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;
你应该好好去。我也会为此向主人提交补丁。