0

我正在尝试使用 fs.writeFile 在 node.js 中编写一个文件,我使用以下代码:

 const fs = require('filer');
 const jsonString = JSON.stringify(myObj)
       fs.writeFile('/myFile.txt', jsonString, function (err) {
        if (err) throw err;
        console.log('Saved!');
      });
    }

我确定该文件已创建,因为我可以通过 fs.readFile 引用相同的地址来读取它,但我无法使用 Windows 搜索在磁盘上找到它。我的理解是,如果我更改本地主机端口,它会将文件保存在另一个位置。我已经尝试过“process.cwd()”,但是没有用。

如果有人可以提供帮助,我真的很感激。

4

2 回答 2

0

尝试使用:__dirname 而不是 process.cwd()

const fs = require('fs');
const path = require('path');
const filePath = path.join(__dirname, '/myFile.txt');
console.log(filePath);
const jsonString = JSON.stringify({ name: "kalo" })
fs.writeFile(filePath, jsonString, (err) => {
    if (err) throw err;
    console.log('The file has been saved!');
});

我想知道你为什么使用“文件管理器”而不是默认的 fs 模块?

fs 模块是在节点 js 中提供文件处理的本机模块。所以你不需要专门安装它。此代码完美运行,它也打印文件的绝对位置。如果它不起作用,请运行此代码,我认为您应该重新安装 node js。我已经更新了答案。您也可以使用 fs.writeFileSync 方法。

于 2020-02-01T16:01:14.420 回答
0

来自文档:“字符串形式路径被解释为标识绝对或相对文件名的 UTF-8 字符序列。相对路径将相对于通过调用 process.cwd() 确定的当前工作目录进行解析。

因此,为了确定您的工作目录(即 fs 默认创建文件的位置)调用(适用于我):

console.log(process.cwd());

然后,如果您想更改您的工作目录,您可以调用(也适用于我):

process.chdir('path_to_new_directory');

路径可以是相对的或绝对的。

这也来自文档:“ process.chdir() 方法会更改 Node.js 进程的当前工作目录,或者如果这样做失败(例如,如果指定的目录不存在)则抛出异常。”

于 2020-10-26T15:44:17.310 回答