Подтвердить что ты не робот

Файл загрузки nodejs

Я хочу загрузить test.txt с nodejs.

var fs = require('fs');
fs.readFile('./test.txt', function (err, data) {
  if (err) {
    throw err; 
  }
  console.log(data);
});

Путь к серверу C:\server\test\server.js. Test.txt находится в том же каталоге, но я получаю эту ошибку: Error: ENOENT, no such file or directory 'C:\Users\User\test.txt'

4b9b3361

Ответ 1

Контуры Node разрешены относительно текущего рабочего каталога. Префикс вашего пути с помощью __dirname, чтобы разрешить путь к местоположению вашего Node script.

var fs = require('fs');
fs.readFile( __dirname + '/test.txt', function (err, data) {
  if (err) {
    throw err; 
  }
  console.log(data.toString());
});

Ответ 2

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

fs.readFile(__dirname + "/test.txt", ...);

Ответ 3

С Node 0.12 теперь можно сделать это синхронно:

  var fs = require('fs');
  var path = require('path');

  // Buffer mydata
  var BUFFER = bufferFile('../test.txt');

  function bufferFile(relPath) {
    return fs.readFileSync(path.join(__dirname, relPath)); // zzzz....
  }

fs - это файловая система. readFileSync() возвращает буфер или строку, если вы спросите.

fs правильно предполагает, что относительные пути являются проблемой безопасности. path - это обход.

Чтобы загрузить в качестве строки, укажите кодировку:

return fs.readFileSync(path,{ encoding: 'utf8' });

Ответ 4

так что если он находится в том же каталоге, просто сделайте это

 fs.readFile(__dirname+'/foo.txt',function(e,d){console.log(d)})

Ответ 5

Если он в том же каталоге, он должен работать. Я тестировал один и тот же код с файлом name.txt, и он отлично работает:

var fs = require('fs');
fs.readFile('./test.txt', function (err, data) {
  if (err) {
    throw err;
  }
  console.log(data.toString());
});