如何使用节点写入文件

时间:2018-06-10 15:57:10

标签: javascript node.js node-modules

我试图将一些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

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您应该使用fs.writeFile()代替fs.write()

请注意,如果存在具有相同名称的文件,则将替换为新文件。但鉴于你的命名惯例,这绝不会发生。

答案 1 :(得分:1)

看看你的例子,你应该给我们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)