javascript:发布到 api 时序列化/反序列化类实例

标签 javascript node.js

基本上,我希望能够将序列化的类实例(JS 前端)发布到端点,并在另一端(nodejs 后端)反序列化它。 由于我在两侧都使用 JS,因此似乎我应该能够使用相同的类 def 来进行序列化/反序列化,并最终在后端得到同一类的实例。

这样,如果class def发生变化,前后端就会同步。

请有人帮忙提供一些可能对这项工作有利的方法/库 - 或者如果以上听起来完全疯狂,那么请告诉我!

最佳答案

我制作了一个名为 esserializer 的 npm 模块解决此问题的方法是:在序列化期间以纯 JSON 格式保存 JavaScript 类实例值及其类名信息。然后可以将序列化的文本发布到端点:

// Browser side
const ESSerializer = require('esserializer');
const serializedText = ESSerializer.serialize(anInstanceOfClassX);
// Send Ajax POST request, with serializedText as data

随后,在 Nodejs 服务器的反序列化阶段,esserializer 可以使用相同的类定义递归地反序列化对象实例,并保留所有类型/函数信息:

// Node.js side
const deserializedObj = ESSerializer.deserialize(serializedText, [ClassX]);
// deserializedObj is a perfect copy of anInstanceOfClassX

如果类定义发生更改,前端和后端将自动同步。

关于javascript:发布到 api 时序列化/反序列化类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53452653/

相关文章:

javascript - 在javascript中将军事时间转换为标准时间的最佳方法

javascript - 找不到模块 : Error: Package path ./locales 在 Angular 更新到 13 后未从包中导出

node.js - Loopback3定期调用远程方法或API

node.js - 如何在 Express 中使用 SCSS? ( Node .js)

javascript - 如何读取用户输入的 Node.js - 使用 Promises 重构

javascript - 在 Javascript 中重启生成器

node.js - 如何用console.log完整输出Buffer内容

javascript - 如何添加一个EventListener,以便在点击后删除一个li?

javascript - 单击时显示谷歌地图左上角的信息窗口?

javascript - 如何在 Salesforce Visual Force 中实现 Javascript?