首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库中node.js对象的自动保存

数据库中node.js对象的自动保存
EN

Stack Overflow用户
提问于 2013-06-25 12:41:14
回答 3查看 4.7K关注 0票数 5

在使用node.js对象(数组、映射.)进行一些数据索引的实验中这需要一些时间来填充(从DB数据)在每次启动脚本,我希望我的node.js对象可以自动和透明地保存在我的数据库中。

我已经使用了来自node.js的node.js和其他数据库(包括基于SQL的数据库)一段时间了,我非常清楚javascript对象(同步访问,没有查询)和数据库记录(异步访问、查询、.)之间的查询/更新机制有很大不同。但是,我仍然希望有一个使javascript持久化的解决方案,至少对于索引是这样的,并且是有帮助的。

基本上,我想到的是HTML5 5的LocalStorage,但是node.js服务器。

你认为这个想法是有趣的、可行的还是已经存在了?

编辑:正在进行的工作: https://github.com/adrienjoly/persistent-harmony

EN

回答 3

Stack Overflow用户

发布于 2013-07-10 09:35:29

首先要说明的是,数据库有两个目的:持久性和方便/高效的查询。

如果您只需要第一个,因为您完全知道没有其他程序将访问您的持久数据,那么您可以查看有关正交持久性的文献,这正是您在这里提出的概念。一个例子是在WaterKen服务器中成功实现的KEN协议。有一些工作将该协议集成到谷歌的V8 JavaScript运行时,这可能会导致Nodeken,一种具有正交持久性的Node.js。

实现正交持久性的困难之一是将事务性语义映射到f.e。面向对象编程系统。V8-ken采用的方法是将JavaScript运行时的单个事件循环执行作为事务处理。换句话说,虚拟机的状态在每个“回合”结束时都会被持久化,以响应某个事件(传入的web请求、服务器应答、用户界面事件、所有异步操作(IO)等等)。然而,这需要经过修改的运行时(如V8-ken ),但是在ECMAScript (例如代理)中的进化看起来很有希望能够更方便地实现这些特性。

然而,在许多情况下(比如web应用程序),持久性数据需要通过不同的程序来访问,需要一个“真实”的数据库来方便数据的导出、迁移、查询等等。当然,混合方法是可能的.

票数 3
EN

Stack Overflow用户

发布于 2013-06-25 13:43:19

代码语言:javascript
复制
%> 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。

票数 2
EN

Stack Overflow用户

发布于 2015-04-20 03:21:00

也许这就是你要找的?

https://github.com/yangli1990/flydb

代码语言:javascript
复制
npm install flydb

现在在javascript中

代码语言:javascript
复制
var flydb = require('flydb');

flydb.test = "hello world";  //flydb.test will now persist

来运行这个

代码语言:javascript
复制
node --harmony-proxies <your commands>

e.g

节点-和谐代理应用程序

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17297632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档