fs.createReadStream не находит файл - PullRequest
0 голосов
/ 26 июня 2018

Я сейчас изучаю 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 находится в родительском каталоге.

- parentFolder

---- 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, но не нашел никаких подсказок.

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 26 июня 2018

Чтобы избежать проблем с путями, рекомендуется использовать path.join, например:

const path = require('path');

const coolPath = path.join(__dirname, 'cool.txt');
const readableStream = fs.createReadStream(coolPath);

В приведенном выше примере вы создаете путь к файлу со ссылкой на текущий каталог скрипта, хранящийся в глобальной переменной с именем __dirname.

...