2013-07-18 2 views
4

У меня возникла другая проблема с node.js, на этот раз я не могу получить код javascript, чтобы узнать, что класс модуля coffeescript имеет функции.node.js coffeescript - проблемы с требуемыми модулями

В моем главном файле, 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 

Мой вопрос, почему мой основной файл загружается нужный модуль, бушель Почему он не может получить доступ к функции? Что я делаю неправильно, будь то с синтаксисом coffeescript или с тем, как мне нужен мой модуль? Дайте мне знать, если я уточню свой вопрос.

Спасибо,

Vineet

+2

Try 'требуют ('кофе-скрипт')', а не с использованием полного пути. Материал в node_modules автоматически подбирается автоматически. – Matt

ответ

6

myFunction является экземпляр метод, поэтому он не будет доступен прямо из class.

Если вы хотите как (статический или ) метод класса, префикс имени с @ обратиться к классу:

class MyModule 

    @myFunction :() -> 
    # ... 

Вы также можете экспортировать Object, если есть намерение для все методы, чтобы быть статическим:

module.exports = 

    myFunction:() -> 
    # ... 

в противном случае, вам нужно создать экземпляр, либо в main:

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

Или, как экспорт объекта:

module.exports = new Utils 
+0

Вау, спасибо за быстрый ответ! Это фиксировало это:] Я не могу принять это еще, но я когда-нибудь закончу период ожидания. –