如何将文件写入 NodeJS 中的特定目录?

Posted

技术标签:

【中文标题】如何将文件写入 NodeJS 中的特定目录?【英文标题】:How to write a file to specific directory in NodeJS? 【发布时间】:2019-06-16 16:25:29 【问题描述】:

我正在将一些文本写入 fs 模块的文件中。

fs.writeFile('result.txt', 'This is my text', function (err) 
                        if (err) throw err;
                        console.log('Results Received');
                        ); 

现在这工作正常。我想将此文件写入项目中的 niktoResults 文件夹,但是当我这样做时

fs.writeFile('/niktoResults/result.txt', 'This is my text', function (err) 
                            if (err) throw err;
                            console.log('Results Received');
                            ); 

它会导致错误。我不知道如何定义可以帮助我克服这个问题的目录路径。

Error:
Error: ENOENT: no such file or directory, open '/niktoResults/[object Object].txt'

【问题讨论】:

您显示的代码不会产生该错误。 确实如此。它不会写入目录而不是文件夹。 P.S:结果变量的值为 [object object] 所以这就是文件名不同的原因。 您问题中的代码未显示任何 results 变量。您的实际代码似乎与您在问题中显示的不同,因为您问题中的代码不会产生您看到的错误。请向我们展示导致该错误的实际代码。只有这样人们才能帮助你。 【参考方案1】:

你必须明白你可以给出绝对路径或相对路径。目前你能做的是

fs.writeFile('./niktoResults/result.txt', 'This is my text', function (err) 
  if (err) throw err;               console.log('Results Received');
); 

这里。指当前目录。因此 ./niktoResults 指的是当前目录下的 niktoResults 文件夹。

【讨论】:

最推荐的方法是什么? 只要把 .在 /niktoResult 之前,它会起作用! 始终建议使用相对路径而不是绝对路径! 您可以访问该文件:localhost:3002/niktoResults/result.txt。但你必须添加 app.use('/niktoResults', express.static(process.cwd() + '/niktoResults'))【参考方案2】:

这样做

const fs = require('fs');
const path = require('path');

let baseDir = path.join(__dirname, '/./niktoResults/');
fs.open(`$baseDir+result.txt`, 'wx', (err, desc) => 
  if(!err && desc) 
     fs.writeFile(desc, 'sample data', (err) => 
       // Rest of your code
       if (err) throw err;               
       console.log('Results Received');
     )
  
)

【讨论】:

有更简洁的方法吗? 你可以使用 fs.writeFileSync【参考方案3】:

此代码将“This is an example text”写入 niktoResults 文件夹的 result.txt:

const fs = require('fs');
const path = require('path');

fs.writeFileSync(path.join(__dirname,"niktoResults","result.txt"), "This is an example text","UTF8")

【讨论】:

以上是关于如何将文件写入 NodeJS 中的特定目录?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 nodejs 中使用 fs 模块将图像写入特定目录?

将文件写入节点js中的特定文件夹?

如何通过管道传输到文件(NodeJS)

如何使用Nodejs将数据作为文件夹中的文件名写入CSV文件

在NodeJS中操作文件常见的API

nodejs分析excel文件将结果写入excel文件