我有以下代码:
#!/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>
可能是什么问题?
答案 0 :(得分:1)
我认为它仅仅是fs.writeFile()
上的外壳。当它应该是骆驼套装的时候你已经得到了所有小写。
当我做出改变时,它对我有用。