fs.createReadStream 没有找到文件
fs.createReadStream is not finding file
我现在正在学习 Node.js,使用 "Beginning Node.js" 教科书。
书中的例子在命令提示符下没有正确执行。 (我正在使用 Ubuntu 18.04 和 Node v9.4.0,这本书已经三年了,所以这可能是相关的?)
在本书的可下载源代码中,这是提供的代码:
var fs = require('fs');
// Create readable stream
var readableStream = fs.createReadStream('./cool.txt');
// Pipe it to out stdout
readableStream.pipe(process.stdout);
文件 cool.txt
在父目录中。
--父文件夹
----jsFileToExecute.js
----cool.txt
当我在命令提示符中 运行 node jsFileToExecute.js
时,我得到这样的响应:
events.js:137
throw er; // Unhandled 'error' event
^
Error: ENOENT: no such file or directory, open './cool.txt'
由于此源代码直接来自教科书出版商的网站,但仍然没有 运行,我认为它有问题吗?
正在寻找解决方案来找出为什么这不起作用。我查看了 nodejs.org 上的文档,但没有找到任何线索。
感谢您的帮助!
为避免路径问题,建议使用path.join
,例如:
const path = require('path');
const coolPath = path.join(__dirname, 'cool.txt');
const readableStream = fs.createReadStream(coolPath);
在上面的示例中,您正在创建一个指向文件的路径,该文件引用存储在名为 __dirname
.
的全局变量中的脚本的当前目录
如果该文件位于您当前所在的同一目录中 运行 您的项目,那么您只需键入文件的名称,而不是像 ./ 或 / 那样给它路径:
var fs = require('fs');
// Create readable stream
var readableStream = fs.createReadStream('cool.txt');
// Pipe it to out stdout
readableStream.pipe(process.stdout);
它将像从同一目录读取文件一样工作
我现在正在学习 Node.js,使用 "Beginning Node.js" 教科书。
书中的例子在命令提示符下没有正确执行。 (我正在使用 Ubuntu 18.04 和 Node v9.4.0,这本书已经三年了,所以这可能是相关的?)
在本书的可下载源代码中,这是提供的代码:
var fs = require('fs');
// Create readable stream
var readableStream = fs.createReadStream('./cool.txt');
// Pipe it to out stdout
readableStream.pipe(process.stdout);
文件 cool.txt
在父目录中。
--父文件夹
----jsFileToExecute.js
----cool.txt
当我在命令提示符中 运行 node jsFileToExecute.js
时,我得到这样的响应:
events.js:137
throw er; // Unhandled 'error' event
^
Error: ENOENT: no such file or directory, open './cool.txt'
由于此源代码直接来自教科书出版商的网站,但仍然没有 运行,我认为它有问题吗?
正在寻找解决方案来找出为什么这不起作用。我查看了 nodejs.org 上的文档,但没有找到任何线索。
感谢您的帮助!
为避免路径问题,建议使用path.join
,例如:
const path = require('path');
const coolPath = path.join(__dirname, 'cool.txt');
const readableStream = fs.createReadStream(coolPath);
在上面的示例中,您正在创建一个指向文件的路径,该文件引用存储在名为 __dirname
.
如果该文件位于您当前所在的同一目录中 运行 您的项目,那么您只需键入文件的名称,而不是像 ./ 或 / 那样给它路径:
var fs = require('fs');
// Create readable stream
var readableStream = fs.createReadStream('cool.txt');
// Pipe it to out stdout
readableStream.pipe(process.stdout);
它将像从同一目录读取文件一样工作