我正在使用mongoose构建一个简单的应用程序来保存来自IRC频道的一些数据。 我在OVH VPS上有一个远程数据库,我可以毫无问题地访问和登录。
但是,当我尝试在其上保存一些数据时,我无法使用我的javascript代码。
以下是我要保存的数据:
"use strict"
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
mongoose.Promise = global.Promise;
var UserPointDataSchema = new Schema({
username: String,
value: Number,
channel: String,
timestamp: Number
});
var UserPointDataModel = mongoose.model('UserPointData',UserPointDataSchema);
class UserPointData{
constructor(username,value,channel){
this.username = username;
this.value = value;
this.channel = channel;
this.timestamp =Date.now();
this.mongooseModel = this.toMoogoseModel();
return this;
}
toMoogoseModel(){
return UserPointDataModel.hydrate(this);
}
save(){
this.mongooseModel.save(function (err, product, numAffected) {
if (err){
console.log(err);
}
console.log(err);
console.log(product);
console.log(numAffected);
});
}
}
module.exports = UserPointData;
以下是控制台上的输出:
空 {username:' breci',value:1,channel:' breci',timestamp: 1478897691976} 0
我检查了日志,没有识别问题,也没有错误。
有人知道它为什么不起作用?
答案 0 :(得分:0)
通过更改toMongooseModel()方法
解决了这个问题如果有人遇到同样的问题,这是新的:
public class TestClass
{
public static void Test()
{
var baseObject = new BaseClass { Name = "BaseObject" };
var derivedObject = new DerivedClass { Name = "DerivedObject", Index = 1 };
using (var stream = new MemoryStream())
{
ProtoBuf.Serializer.Serialize(stream, baseObject);
Debug.WriteLine(stream.Length);
stream.Seek(0, SeekOrigin.Begin);
// either of next two lines will throw the invalid cast exception :
// DerivedClass derivedObjectOut = ProtoBuf.Serializer.Deserialize<DerivedClass>(stream);
// var objectOut = ProtoBuf.Serializer.Deserialize<DerivedClass>(stream);
// no exception thrown but internal type of objectOut is unexpectedly BaseClass :
var objectOut = ProtoBuf.Serializer.Deserialize<DerivedClass>(stream);
}
}
}
如果有人知道为什么水合物方法不起作用,我很想知道。