gpt4 book ai didi

javascript - 使用文件系统包读取文件

转载 作者:行者123 更新时间:2023-11-30 14:34:58 24 4
gpt4 key购买 nike

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

引用:https://www.npmjs.com/package/file-system

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

enter image description here

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

这告诉我文件系统模块找不到文件,但我不明白为什么。

我尝试过的其他一些事情:- 我也尝试使用 import 而不是 require- 我试过像这样显式声明当前目录

fs.readFileSync('./data.txt').

您知道我做错了什么或对我可以尝试如何使这项工作有任何想法吗?

最佳答案

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

要使 fs.readFileSync('./data.txt'); 在您的情况下工作,您需要直接在 file-system- 上运行 node and-reduce 目录

file-system-and-reduce $ node reduce2.js

否则 Node 会尝试搜索:js-practice/data.txt,这在您的案例中不存在。

一个好的解决方案是使用:__dirname ,以及 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);

请记住,您提供的引用不是 native 文件系统模块。

关于javascript - 使用文件系统包读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50574657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com