javascript - 如何在不丢失其方法的情况下将 javascript 对象保存到 mongodb?
问题描述
我有一个从特定类派生的 JS 对象,其中包含方法。我想将它保存到猫鼬模式中的对象数组中。为此,我使用 Socket.io 发送它。当我将对象保存在服务器上然后检索它时,所有方法都消失了。这是正常行为吗?
我的对象是这样的:
class MyObject {}
MyObject.prototype.myMethod = function(){
//Do something
}
我的架构如下所示:
const ProjectSchema = new mongoose.Schema({
arrayData: {
type: Array,
of: Object,
default: []
}
})
我的客户端代码如下所示:
var object1 = new MyObject();
socket.emit('updateSend',{object1, projectId}, (error) => {
if(error) {
alert(error);
} else {
console.log('changes successfully updated');
}
});
还有我的服务器:
socket.on('updateSend',async ({object1,projectId}, callback) => {
try {
const project = await ProjectSchema.findById(projectId)
project.arrayData.push(object1)
await project.save()
} catch(e) {
return callback(e)
}
})
解决方案
推荐阅读
- ios - 尝试查询存储 NSData 的密钥时,Xamarin.iOS 钥匙串挂起
- jquery - 选项卡 - 突出显示活动选项卡
- python - 我可以在 U 盘上安装 virtualenv 吗?
- matlab - MATLAB:如何获取相对于图形位置而不是图形轴的点击值
- azure-devops - Azure Devops(VSTS) 发布管道变量
- php - 通过管道 $_POST 到外部命令
- c# - WPF:在 Windows 10 日语中的文本更改期间应用程序崩溃
- coldfusion - 使用带有 queryfilter 功能的 cfloop
- azure - 如何在 Azure 搜索中编写“以”结尾的正则表达式
- c# - 从长时间运行的 SSH 命令获取 SSH 输出到 StreamReader