Я пытаюсь записать некоторые 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: Первый аргумент должен быть файловым дескриптором в Object.fs.write
Как я могу это решить?
Вы должны использовать fs.writeFile()
вместо fs.write()
.
Обратите внимание: если есть файл с таким же именем, он будет заменен новым. Но, учитывая ваше соглашение об именах, этого никогда не должно произойти.
глядя на ваш пример, вы должны нам 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)