4

我在使用 node.js 时遇到了另一个问题,这次我无法让我的 javascript 代码识别出咖啡脚本模块的类具有函数。

在我的主文件 main.js 中,我有以下代码:

require('./node_modules/coffee-script/lib/coffee-script/coffee-script');
var Utils = require('./test');
console.log(typeof Utils);
console.log(Utils);
console.log(typeof Utils.myFunction);

在我的模块 test.coffe 中,我有以下代码:

class MyModule

  myFunction : () ->
    console.log("debugging hello world!")

module.exports = MyModule

这是我运行时的输出node main.js

function
[Function: MyModule]
undefined

我的问题是,为什么我的主文件加载了正确的模块,但为什么无法访问该功能?我做错了什么,无论是咖啡脚本语法,还是我对模块的要求?让我知道我是否应该澄清我的问题。

谢谢,

维内

4

1 回答 1

6

myFunction是一个实例方法,因此不能直接从class.

如果您希望它作为(或静态)方法,请在名称前加上前缀@以引用该类:

class MyModule

  @myFunction : () ->
    # ...

Object如果意图是所有方法都是静态的,您还可以导出一个:

module.exports =

  myFunction: () ->
    # ...

否则,您需要在以下位置创建一个实例main

var utils = new Utils();
console.log(typeof utils.myFunction);

或者,作为导出对象:

module.exports = new Utils
于 2013-07-18T17:14:00.770 回答