2015-07-02 2 views
0

У меня сейчас небольшая проблема с «Enums» в Node.js.Node.JS - Не удается прочитать свойство «ColorType» неопределенного

В настоящее время у меня есть файл colorHandler.js в папке lib /, и я обращаюсь к нему в другом файле в моей/lib. формат в chatHandler.js нижеследовал:

var format = { 
    GREEN: {irc: '\u000309', mc: 'a'}, 
    RED: {irc: '\u000304', mc: 'c'}, 
} 

И в моем IRC Хэндлер, я в настоящее время есть только одно объявление (потребовав, конечно), что выглядит Лик это:

Command.test = function(ocmd) { 
    client.say(to, c.format.GREEN.irc. + from + ': '+ c.format.RED.irc +'Command handler works!'); 
} 

Ошибка Я получаю в своем отладчике: «сообщение»: «uncaughtException: не удается прочитать свойство« GREEN »неопределенного»

Что здесь происходит, оно работает для меня, теперь он просто постоянно бросает ошибку один раз команда «test» вводится в чат.

+0

формат не доступен за пределами colorHandler .js as nodejs добавляет функцию обертки к каждому файлу. Что такое c во втором файле – Anoop

+0

c является 'var c = require ('../ lib/colorHandler.js');' - пока 'c' просто используется как тест, пока я не получу лучшее имя: P –

ответ

1

Изменение var format в module.exports.format

module.exports.format = { 
    GREEN: {irc: '\u000309', mc: 'a'}, 
    RED: {irc: '\u000304', mc: 'c'}, 
} 

когда вы используете требуют (...) он стал

(function (exports, require, module, __filename, __dirname) { 
    module.exports.format = { 
    GREEN: {irc: '\u000309', mc: 'a'}, 
    RED: {irc: '\u000304', mc: 'c'}, 
    } 
}); 
+0

Этот метод возвращает ту же ошибку. –

+0

исправлена. он должен теперь работать – Anoop

+0

Это сделало это, ура! После этого я сейчас занимаюсь более сложной задачей. Надеюсь, мне не нужно возвращаться сюда, хотя этот сайт замечательный. : P Вы знаете, что я имею в виду. –

0

Вам необходимо экспортировать ваш объект с помощью module.exports.format = format.

При создании узла узла будут показаны только атрибуты, определенные на module.exports или exports. Затем вы можете создать require модуль и получить доступ к открытым атрибутам в другом модуле узла.

Ваш код должен выглядеть

var format = { 
    GREEN: {irc: '\u000309', mc: 'a'}, 
    RED: {irc: '\u000304', mc: 'c'}, 
}; 

module.exports.format = format; 
+0

Этот метод возвращает ту же ошибку. –

+0

Повторите попытку с 'module.exports.format = format' –

+0

Возвращает ту же ошибку. '" message ":" uncaughtException: Не удается прочитать свойство "GREEN" неопределенного "' (используя отладку Winston) –

Смежные вопросы