Как записать в файл, используя узел - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь записать html в файл следующим образом, но получаю сообщение об ошибке:

var date = new Date(), year = date.getFullYear(), month = date.getMonth() + 1, day = date.getDate(); 

var folderName = year + '-' + month + '-' + day; 

var path = "public/" + folderName; 

fs.ensureDir(path).then(() => { 

console.log('success!') }).
catch(err => { console.error(err) }) 

path = path + '/' + date.getTime() + ".html"; 

let html = await page.evaluate(() => 
document.body.innerHTML); 

require('fs').write(path, html, "w");

Ошибка:

UnhandledPromiseRejectionWarning: TypeError: Firstаргумент должен быть дескриптором файла на Object.fs.write

Как я могу решить эту проблему?

Ответы [ 2 ]

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

глядя на ваш пример, вы должны использовать fs.writeFile:

const fs = require('fs');
fs.writeFile('YOUR_PATH', 'YOUR_HTML_TEXT', (err) => {
  if (err) {
    return console.error(err); 
  }

  console.log('file created');
});

Просто чтобы добавить дополнительную информацию, функция, которую вы пытались использовать:

fs.write(fd, string[, position[, encoding]], callback)

Ожидает файлдескриптор, это идентификатор, возвращаемый, например, методом open:

fs.open(path, flags[, mode], callback)
0 голосов
/ 10 июня 2018

Вы должны использовать fs.writeFile() вместо fs.write().

Обратите внимание, что при наличии файла с таким же именем он будет заменен нановый.Но, учитывая ваше соглашение об именах, этого никогда не должно быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...