首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fs.writeFile()和fs.readFile()奇怪行为

fs.writeFile()和fs.readFile()奇怪行为
EN

Stack Overflow用户
提问于 2016-11-26 01:23:42
回答 1查看 3.4K关注 0票数 3

我正在写一个桌面应用程序使用电子和反应。我想将一些信息存储在JSON文件中。我已经尝试过web-fs和浏览器-fs来完成这一任务,而且它们都没有像预期的那样工作。我的设置如下

项目/应用程序/(app文件)

项目/index.html

project/js/bundle.js

项目/main.js

我使用watchify将react文件中的所有更改编译为bundle.js文件(由index.html读取)。

以下是项目/app/中的app.js (也是存储JSON文件的地方)中运行的

代码语言:javascript
复制
import * as fs from 'browserify-fs';
...
fs.writeFile('./fileData.json', data, function(err){
    if(err)console.log(err);
    else console.log("success");
   });

“成功”总是被记录到控制台,但是无论我如何指定路径,文件的内容都不会被更新。

我试过了。/fileData.json‘

'/fileData.json‘

__dirname + '/fileData.json‘(这告诉我找不到__dirname )

(fileData.json的绝对路径)(这告诉我找不到/Users )

完成上述操作后,如果我将writeFile更改为readFile并将内容记录到控制台,则会打印更新的文件。即使我删除了fileData.json文件,也会成功读取该文件。

这使我相信,fs.writeFile()正在写入另一个目录,而不是运行进程的目录。尽管如此,我在计算机上的任何地方都找不到其他的fileData.json文件。还有其他一些奇怪的行为:

  1. 在记录__filename (应该记录整个文件路径)时,唯一打印的内容是没有前导文件路径的"/app.js“。
  2. 调用"process.cwd()“”给我"/“
  3. 使用完整的文件路径“/Users/.”调用fs.writeFile()时我得到一个文件夹没有找到错误

有人知道是什么导致了这种行为,以及如何解决它?

编辑-我还尝试通过添加

代码语言:javascript
复制
var path = require('path')
var appDir = path.resolve('./app');

它只在应该返回绝对路径时才给我/app

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-28 03:11:53

当不使用浏览器-fs时,您能确认相同的行为吗?只需使用普通的旧fs。(请注意,您可以直接从Chrome工具控制台执行此操作)。

查看browserify-fs页面,它看起来像是使用一个名为级别文件系统的依赖项实现了一种虚拟文件系统(它使用的是db级别)。所以你想要创建的文件是没有的,它们是在db数据库中创建的。您可能会在某个地方找到一个级别db文件,其中包含您试图直接写入其中的文件系统的信息。

对于JSON文件的简单写入/读取,我建议使用https://github.com/sindresorhus/electron-config

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

https://stackoverflow.com/questions/40814065

复制
相关文章

相似问题

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