如何使用节点写入文件
How to write to a file using node
我正在尝试将一些 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 argument must be
file descriptor
at Object.fs.write
我该如何解决?
你应该使用 fs.writeFile()
instead of 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)
我正在尝试将一些 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 argument must be file descriptor at Object.fs.write
我该如何解决?
你应该使用 fs.writeFile()
instead of 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)