在使用node.js对象(数组、映射.)进行一些数据索引的实验中这需要一些时间来填充(从DB数据)在每次启动脚本,我希望我的node.js对象可以自动和透明地保存在我的数据库中。
我已经使用了来自node.js的node.js和其他数据库(包括基于SQL的数据库)一段时间了,我非常清楚javascript对象(同步访问,没有查询)和数据库记录(异步访问、查询、.)之间的查询/更新机制有很大不同。但是,我仍然希望有一个使javascript持久化的解决方案,至少对于索引是这样的,并且是有帮助的。
基本上,我想到的是HTML5 5的LocalStorage,但是node.js服务器。
你认为这个想法是有趣的、可行的还是已经存在了?
编辑:正在进行的工作: https://github.com/adrienjoly/persistent-harmony
发布于 2013-07-10 09:35:29
首先要说明的是,数据库有两个目的:持久性和方便/高效的查询。
如果您只需要第一个,因为您完全知道没有其他程序将访问您的持久数据,那么您可以查看有关正交持久性的文献,这正是您在这里提出的概念。一个例子是在WaterKen服务器中成功实现的KEN协议。有一些工作将该协议集成到谷歌的V8 JavaScript运行时,这可能会导致Nodeken,一种具有正交持久性的Node.js。
实现正交持久性的困难之一是将事务性语义映射到f.e。面向对象编程系统。V8-ken采用的方法是将JavaScript运行时的单个事件循环执行作为事务处理。换句话说,虚拟机的状态在每个“回合”结束时都会被持久化,以响应某个事件(传入的web请求、服务器应答、用户界面事件、所有异步操作(IO)等等)。然而,这需要经过修改的运行时(如V8-ken ),但是在ECMAScript (例如代理)中的进化看起来很有希望能够更方便地实现这些特性。
然而,在许多情况下(比如web应用程序),持久性数据需要通过不同的程序来访问,需要一个“真实”的数据库来方便数据的导出、迁移、查询等等。当然,混合方法是可能的.
发布于 2013-06-25 13:43:19
%> npm search persistent storage
closet JSON persistent storage with methods chainability and callbacks for asynchronous use. =ganglio 2013-01-29 18:41 0.0.7 json persistent storag
ewdDOM Persistent lightweight DOM using Mumps Global Storage =robtweed 2013-02-02 14:39 0.0.4
fs-persistent-object Tiny Node library for persisting small runtime objects on filesystem =oleksiyk 2013-04-09 09:13 0.0.1 persistent tiny storage
headstorage A persistent storage for Node.js =headhsu2568 2012-11-20 13:41 0.0.0 storage
level-store A streaming storage engine based on LevelDB. =juliangruber 2013-06-21 19:55 3.3.2 leveldb levelup stream persistent
node-persist Super-easy (and fast) persistent data structures in Node.js, modeled after HTML5 localStorage =benmonro 2013-04-09 17:33 0.0.1 node persist
persistent-hash-trie Pure string:val storage, using structural sharing =hughfdjackson 2013-05-24 19:24 0.4.1 persistent hash trie pure functional d
perstore Perstore is a cross-platform JavaScript object store interface for mapping persistent objects to various different storage mediums using an in
shelf.js A modular, powerful wrapper library for persistent objects in the browser and Node.js =shakty 2013-05-24 08:10 0.4.7 persistance localStorag
stay Persistent scuttlebutt instances for browser and node =juliangruber 2012-12-11 21:54 0.1.0 persistent scuttlebutt persistence loc看起来最近的匹配应该是节点持久化。
=)
编辑:这里可能有更好的替代解决方案..。
@adrienjoly -你知道,原型制作的水平仍然很高,而且(从长远来看)可能没有你想的那么高效。
您最好在C/C++中开发一个模块,公开一个供node.js利用的高级API。
我想我有一个关于在这种类型的帖子开发中弄湿您的脚的node.js (它源于我跟随这里的一个原始教程)。
不过,我确实认为这个方法已经过时了,一个较新的方法是使用节点-回转工具。一些额外的资源和例子:节点-gyp项目,uRSA (我有一个小拉力请求和这个),bcrypt等等。
我的假设是,您可以将模块扩展绑定到db api (如oracle或postgres等),并编写一个链接到低级别API的低级模块,同时为开发人员公开一个高级API,以便使用API调用实现持久配置选项,以进行切片、索引等,这样的性能将是最佳的,而不是试图让node.js解释原型的shim。
发布于 2015-04-20 03:21:00
也许这就是你要找的?
https://github.com/yangli1990/flydb
或
npm install flydb现在在javascript中
var flydb = require('flydb');
flydb.test = "hello world"; //flydb.test will now persist来运行这个
node --harmony-proxies <your commands>e.g
节点-和谐代理应用程序
https://stackoverflow.com/questions/17297632
复制相似问题