2017-03-03 47 views
0

我對AngularJS和Electron很新,我目前正在研究一個簡單的桌面應用程序,該應用程序從JSON文件中讀取數據並允許用戶更新和刪除數據。我也使用TaffyDB來查詢數據。我能從JSON文件中獲取數據,但無法將其存儲在JSON文件中。AngularJS + Electron:將數據保存到JSON文件

我試過到目前爲止是這樣的:

myApp.controller('homeController', ['$scope', '$http', function($scope, $http) { 

    $scope.saveData = function() 
    { 
     var data = $scope.data; 

     $http.post('/src/db/db.json', data).then(function (response) { 

      console.log(response); 

     }, function (response) { 

      console.log(response); 

     }); 
    }; 

}]); 

在瀏覽器上我碰到下面的錯誤執行的事件:

POST http://127.0.0.1:64262/src/db/db.json 404 (Not Found) 

這是正常的,因爲我們無法從JavaScript訪問用戶的文件系統。

當我執行應用程序的電子包,我得到如下:

Object {data: Array[2], status: 200, config: Object, statusText: "OK"} 

但該文件沒有被修改。

我想知道是否有任何方法可以使用AngularJS和Electron來完成此操作。

重要注意事項:此應用程序需要作爲獨立桌面應用程序運行。換句話說,我的客戶不會安裝其他軟件或應用程序來使用此應用程序。

回答

1

您無法使用HTTP寫入文件系統,這僅適用於Web。

電子是建立在Node.js上的。所以看看Node.js File System module。例如:

fs.writeFile('/src/db/db.json', data, (err) => { 
    if (err) throw err; 
    console.log('It\'s saved!'); 
}); 
+0

您好@justin,tnx您的回覆。我需要在我的客戶端計算機上安裝節點以使其工作嗎? – Ricky

+1

節點包含在Electron中,所以如果您提供應用程序的完成版本,則不需要單獨安裝節點。雖然這是相當基本的,但我建議你在提出更多問題之前閱讀Electron的基礎知識以獲得更好的理解 –

+1

感謝您的信息。我將更多地研究Node和Electron,並儘快回到這個問題。 – Ricky