node.js coffeescript - issues with requiring modules

coffeescript, node.js

Solution

`myFunction` is an instance method, so it won't be accessible directly from the `class`.

If you want it as a class (or static) method, prefix the name with `@` to refer to the class:

class MyModule

  @myFunction : () ->
    # ...

You can also export an `Object` if the intention is for all methods to be static:

module.exports =

  myFunction: () ->
    # ...

Otherwise, you'll need to create an instance, either in `main`:

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

Or, as the export object:

module.exports = new Utils

Problem

I'm having another issue with node.js, this time I cannot get my javascript code to recognize that a coffeescript module's class has functions. In my main file, main.js I have the following code: ``` 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); ``` And in my module, test.coffe, I have the following code: ``` class MyModule myFunction : () -> console.log("debugging hello world!") module.exports = MyModule ``` Here is the output when I run `node main.js` : ``` function [Function: MyModule] undefined ``` My question is, why is my main file loading the correct module, but why is it unable to access the function? What am I doing wrong, whether it be with the coffeescript syntax, or with how I am requiring my module? Let me know if I should clarify my question. Thanks, Vineet

Original source