2017-01-23 48 views
0

我正在开发一个express.js示例应用程序供个人参考。我想保存数据,但我现在不想设置数据库或其他任何东西。Express.js 4 - 读取/写入数组而不是使用数据库

我想知道如何将数据保存到文件中?它本身并不需要保存,但我试图使用CRUD和RESTful路由来模拟数据库。

说我有这data.js

var entries = [ 
{"id":1, "title":"Hello World!", "body":"This is the body of my blog entry. Sooo exciting.", "published":"01/01/2017"}]; 


exports.getBlogEntries = function() { 
    return entries; 
} 

exports.getBlogEntry = function(id) { 
    for(var i=0; i < entries.length; i++) { 
     if(entries[i].id == id) return entries[i]; 
    } 
} 

如果说getBlogEntriesindexgetBlogEntryshow,我将如何去模仿createupdatedestroy?这些数据会被保存下来还是会保存在内存中并在页面刷新时消失?

+0

对于'create',只需创建另一个对象并将其推入数组。为了销毁,你可以使用[splice](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)并阅读[this](http://stackoverflow.com /问题/ 500606 /删除阵列元素合JavaScript的删除-VS-拼接)。 'update'应该很容易,只需找到元素并进行更改即可。 –

+0

感谢您的答案@Aᴍɪʀ。这个数据会在页面刷新时持久吗? –

+0

只要服务器进程正在运行,数据就会持久。刷新页面将不会重新启动该进程,因此它将被保留。 –

回答

0

节点默认为单线程,因此您可以在全局范围内创建一个对象(甚至是一个数组),只要程序运行它就会保存数据。它也是线程安全的。只需将它作为C++中的静态变量来处理即可。

相关问题