什么相当于节点中的Pythons“pickle”

时间:2012-12-31 09:54:48

标签: python node.js amqp

Python的一个功能是 pickle 功能,它允许您存储任意内容,并将其恢复到原始形式。一种常见的用法是采用完全实例化的对象并将其腌制以供以后使用。在我的情况下,我有一个不可序列化的AMQP消息对象,我希望能够将它存储在会话存储中并检索它,我可以用pickle做。主要的区别是我需要在对象上调用方法,我不只是在寻找数据。

但是这个项目在nodejs中,似乎所有节点的低级库都必须有一些方法来保存这个对象,以便它可以在Web调用之间持续存在。

用例是网页获取RabbitMQ消息并显示从中派生的信息。我不想在消息被采取行动之前确认消息。我通常只是将数据保存在会话状态,但这不是一个选项,除非我能以某种方式将其保存为原始形式。

3 个答案:

答案 0 :(得分:4)

参见pickle-js项目:https://code.google.com/p/pickle-js/

另外,来自findbestopensource.com:

  

pickle.js是Python pickle格式的JavaScript实现。它支持包含基本类型的跨语言子集的pickle。 pickle.js和pickle.py:text pickles之间的主要区别只有一些类型被有损转换(例如int)某些类型不受支持(例如类)

此处提供了更多信息:http://www.findbestopensource.com/product/pickle-js

答案 1 :(得分:1)

据我所知,在JavaScript(或标准节点库)中没有与pickle相同的东西。

答案 2 :(得分:1)

查看https://github.com/carlos8f/hydration,了解它是否符合您的需求。我不确定它和pickle一样完整,但它非常棒。

免责声明:模块作者和我是同事。