基本上,我希望能够将序列化的类实例(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/