Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS已成功读取文件和写入文件,但稍后读取的文件不存在_Javascript_Node.js_Yeoman_Yeoman Generator - Fatal编程技术网

Javascript NodeJS已成功读取文件和写入文件,但稍后读取的文件不存在

Javascript NodeJS已成功读取文件和写入文件,但稍后读取的文件不存在,javascript,node.js,yeoman,yeoman-generator,Javascript,Node.js,Yeoman,Yeoman Generator,我在Yeoman生成器中有以下有趣的场景,但我不得不依赖常规的NodeJS文件系统操作 在我的例子中,我首先需要读写文件系统中已经存在的文件。我同步读取文件,同步写入文件 function myFunction1(){ let content = fs.readFileSync('filename.txt', 'utf-8') // change content in here let newContent = content+"Hello World"; fs

我在Yeoman生成器中有以下有趣的场景,但我不得不依赖常规的NodeJS文件系统操作

在我的例子中,我首先需要读写文件系统中已经存在的文件。我同步读取文件,同步写入文件

function myFunction1(){

    let content = fs.readFileSync('filename.txt', 'utf-8')
    // change content in here
    let newContent = content+"Hello World";
    fs.writeFileSync('filename.txt', newContent);
}
在后面的步骤中,我需要再次读取相同的文件

function myFunction2(){

    let content = fs.readFileSync('filename.txt', 'utf-8')

}
现在的问题是,文件系统中不存在完全相同的文件,或者代码可以访问该文件。 如果我注释掉对
myFunction2
的调用,文件将写入文件系统

但是,我在再次读取之前更改的文件时遇到问题。问题是:

  • 我有什么不对劲吗
  • 这里有什么我错过的吗
  • 我的问题有解决办法吗

  • 遗憾的是,我无法将它们重构为只需调用即可,因为有不同的写入和读取场景。

    函数调用中似乎有一些输入错误和/或缺少参数

    试试这个:

    function myFunction1(){
    
        let content = fs.readFileSync('filename.txt', 'utf-8');
        // create new file content to test writeFileSync logic
        let newContent = content + ' something else';
        fs.writeFileSync('filename.txt' , newContent );
    }
    
    function myFunction2(){
        let content = fs.readFileSync('filename.txt', 'utf-8');
    }
    

    希望这有帮助

    不确定这是否只是一个输入错误,但是
    myFunction1
    myFunction2
    中有一个错误:
    let content=fs.readFileSync('filename.txt','utf-8)
    您是否使用了示例中的相对路径?可能工作目录正在更改。在每次读取之前,请尝试记录
    process.cwd()
    。抱歉,是的,有一些输入错误-我总是使用与我通过将路径写入控制台检查的文件相同的路径。问题是,即使文件系统中的文件也只有在执行第一个函数时才存在。对我来说,看起来很有意思。如果文件确实还在,而你使用的是完全相同的文件名来读取它,那么当前的工作目录必须在更改。是的,但即使是文件路径也保持不变。没有帮助,只是修复了上面代码中的一些拼写错误。真正的代码没有这些,不仅仅是打字错误。您的代码中有一个bug。您以前的代码是:
    fs.writeFileSync('filename.txt')
    。我添加了
    让newContent=content+“其他东西”;fs.writeFileSync('filename.txt',newContent)我认为它实际上可以解决你的错误。不,谢谢,但只修复了打字错误。无论如何,谢谢你。上述另外两位也指出了同样的情况。