首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用文件系统包读取文件

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

Stack Overflow用户
提问于 2018-05-29 08:00:37
回答 1查看 130关注 0票数 1

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

参考:https://www.npmjs.com/package/file-system

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

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

代码语言:javascript
复制
const fs = require('fs')

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

console.log(output);

这是我从命令行运行该文件时得到的错误:

代码语言:javascript
复制
➜  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 -我尝试显式地声明当前目录,如下所示

代码语言:javascript
复制
fs.readFileSync('./data.txt').

你知道我做错了什么吗,或者我有什么想法可以试着让它工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 08:08:00

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

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

代码语言:javascript
复制
file-system-and-reduce $ node reduce2.js

否则,node会尝试搜索:js-practice/data.txt,它在您的示例中并不存在。

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

代码语言:javascript
复制
const fs = require('fs'); // Native fs module
const path = require('path');

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

console.log(output);

请记住,您提供的参考资料中,并不是原生文件系统模块。

https://nodejs.org/docs/latest/api/fs.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50574657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档