2017-01-23 123 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++中的靜態變量來處理即可。

相關問題