我有一个模块,可以将日志写入到一个文件中。(使用 coffeescript 编写,但你可以理解其含义!)
require = patchRequire(global.require)
fs = require('fs')
exports.h =
log: ()->
for s in arguments
fs.appendFile "log.txt", "#{s}\n", (e)->
if (e) then throw e
当我直接调用它时,它可以正常工作。但是当我从回调函数中调用它时,例如casperjs的启动事件:
h = require('./h').h
casper = require('casper').create()
casper.start "http://google.com", ()->
h.log("hi")
casper.run()
我经常遇到类似于“未定义”的TypeError错误:
TypeError: 'undefined' is not a function (evaluating 'fs.appendFile("log.txt", "" + s + "\n", function(e) {
if (e) {
throw e;
}
})')
谷歌搜索并没有给出很多线索!