Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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 使用文件系统包读取文件_Javascript_Node.js_Filesystems - Fatal编程技术网

Javascript 使用文件系统包读取文件

Javascript 使用文件系统包读取文件,javascript,node.js,filesystems,Javascript,Node.js,Filesystems,我正在尝试使用文件系统包读取文件 参考: 我试图读取的文件与执行读取的文件位于同一目录中(如下所示) reduce2.js文件中的代码如下所示: const fs = require('fs') var output = fs.readFileSync('data.txt') console.log(output); 这是我从命令行运行文件时遇到的错误: ➜ js-practice node functional-programming-mpj/file-system-and-redu

我正在尝试使用文件系统包读取文件

参考:

我试图读取的文件与执行读取的文件位于同一目录中(如下所示)

reduce2.js文件中的代码如下所示:

const fs = require('fs')

var output = fs.readFileSync('data.txt')

console.log(output);
这是我从命令行运行文件时遇到的错误:

➜  js-practice node functional-programming-mpj/file-system-and-reduce/reduce2.js 
fs.js:638
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open 'data.txt'
    at Object.fs.openSync (fs.js:638:18)
    at Object.fs.readFileSync (fs.js:540:33)
    at Object.<anonymous> (/Users/jackburum/tutorials/js-practice/functional-programming-mpj/file-system-and-reduce/reduce2.js:3:17)
    at Module._compi

你知道我做错了什么吗?或者你对我能做什么有什么想法吗?

问题是,你正在从另一个目录执行
node
命令:
js practice/

对于
fs.readFileSync('./data.txt')
要在您的案例中工作,您需要直接在
文件系统上运行
节点
,并减少
dir

file-system-and-reduce $ node reduce2.js
否则,节点将尝试搜索:
js practice/data.txt
,该文件在您的案例中不存在

一个好的解决方案是使用:,以及
path.join
,以获得文件的绝对路径,这将允许您从任何位置调用脚本

const fs = require('fs'); // Native fs module
const path = require('path');

const output = fs.readFileSync(path.join(__dirname, 'data.txt'));

console.log(output);
请记住,您提供的参考,不是本机文件系统模块

  • 本机:(我推荐)
  • 第三方:

非常有用的答案,帮我解决了这个问题。谢谢你,马科斯。
const fs = require('fs'); // Native fs module
const path = require('path');

const output = fs.readFileSync(path.join(__dirname, 'data.txt'));

console.log(output);