获取没有方法' writefile'即使输入是一个字符串?

时间:2015-03-15 02:57:59

标签: javascript

我有以下代码:

#!/usr/bin/env node

var Promise = require("bluebird")
  , fs = Promise.promisifyAll(require('fs'))
  , async = require('async') 
  , program = require('commander')

program
  .version('0.0.1')
  .usage('<keywords>')
  .parse(process.argv)

async.waterfall([
  fs.readdir.bind(fs, __dirname),
  parseHTML,
], saveResult)

function parseHTML(files, callback) {
  var promises = []

  files.forEach(function (file) {
    if(file.match(/\.html$/))
      promises.push(fs.readFileAsync(file, 'utf8'))
  })

  Promise.all(promises).then(function(arr) {
    console.log(arr)
    var str = arr.join('')
    console.log(str)
    callback(null, str)
  }, function (err) {
    // error here
  })
}

function saveResult(err, result) {
  fs.writefile("untitled.html", result, function(err) {
    if (err)
      console.log(err)
    else
      console.log(result)
  })
}

基本上在文件夹中查找HTML并将它们合并到一个文件中。

我收到此错误:

Unhandled rejection TypeError: Object #<Object> has no method 'writefile'
    at saveResult (/home/alex/node/m2k/h2k.js:40:6)
    at /home/alex/node/m2k/h2k.js:33:5

我觉得奇怪,因为console.log(arr)给出一个数组,console.log(str)给出一个字符串。没有对象:

[ '<p>File 1</p>\n', '<p>File 2</p>\n' ]
<p>File 1</p>
<p>File 2</p>

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

我认为它仅仅是fs.writeFile()上的外壳。当它应该是骆驼套装的时候你已经得到了所有小写。

当我做出改变时,它对我有用。