在Node.js回调中调用模块函数

多尔贝里

我有一个写入日志文件的模块。(对不起,但您明白了!)

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 start事件:

h = require('./h').h
casper = require('casper').create()

casper.start "http://google.com", ()->
  h.log("hi")

casper.run()

...我总是得到这个或类似的“未定义的” TyepError:

TypeError: 'undefined' is not a function (evaluating 'fs.appendFile("log.txt", "" + s + "\n", function(e) {
      if (e) {
        throw e;
      }
    })')

谷歌搜索并没有很多线索!

Artjom B.

CasperJS在PhantomJS(或SlimerJS)上运行并使用其模块。它不同于nodejs。PhantomJS的fs模块没有appendFile功能。

当然,fs.write(filepath, content, 'a');如果在casper中使用您可以用来附加到文件。如果仍然要在Casper和Node中使用模块,则需要编写一些粘合代码,例如

function append(file, content, callback) {
    if (fs.appendFile) {
        fs.appendFile(file, content, callback);
    } else {
        fs.write(file, content, 'a');
        callback();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js:如何从其回调中再次调用函数

来自分类Dev

整合node.js模块导出中的多个回调

来自分类Dev

“调用堆栈”用于node.js中的回调

来自分类Dev

API调用的异步并行与node.js中的回调

来自分类Dev

“调用堆栈”用于node.js中的回调

来自分类Dev

在 Node.js 中,如何在主应用程序中存储来自模块函数的回调数据?

来自分类Dev

在Node.js中制作异步回调函数

来自分类Dev

如何在回调函数Node JS中打破for循环

来自分类Dev

TypeError:回调不是Node.js中的函数

来自分类Dev

如何在回调函数Node JS中打破for循环

来自分类Dev

等待回调函数在Node.js中返回

来自分类Dev

Node.js中的回调函数没有结果

来自分类Dev

Node js中的回调函数是否以同步方式执行?

来自分类Dev

如何在node.js中执行回调函数?

来自分类Dev

如何从 Node.Js 中的回调函数返回数据

来自分类Dev

node.js回调函数dynamodb

来自分类Dev

来自node.js的回调函数

来自分类Dev

回调函数问题Node.js

来自分类Dev

Node.js:将数据从回调传递给调用函数

来自分类Dev

Node.js中的回调顺序

来自分类Dev

如何在Node.js模块中处理异步回调?

来自分类Dev

如何在Node.js模块中处理异步回调?

来自分类Dev

模块化如何从技术上解决Node.js中的回调地狱

来自分类Dev

Node.JS请求模块回调未触发

来自分类Dev

Node.js中的事件循环是运行回调本身还是只是将回调传递给调用堆栈,以便调用堆栈执行回调?

来自分类Dev

Node.JS函数返回异步回调函数的值

来自分类Dev

Node.js 中异步包的 .each() 方法中的回调函数

来自分类Dev

从Node.Js中的一系列回调函数返回结果

来自分类Dev

我们如何从node.js中的回调函数访问变量?

Related 相关文章

热门标签

归档