2017-03-03 177 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