2013-07-17 5 views
0

Как получить доступ к функции, находящейся внутри одного из скриптов, которые вы «включили», используя функцию require() узла?Использование функций внутри сценариев, требуемых требуемым NodeJS()

--main-js.js--

var webnotis = require('./modules/web-notification.js') 

--web-notification.js--

function getURL(host, path) { 
... 
} 

Кроме того, как бы я использовать эту функцию в других необходимых скриптов?


--report-tables.js--

var cltvOut; 
exports.cltv = function cltv(getURL) 
{ 
    clearTimeout(cltvOut); 
    cltvOut = setTimeout(function(){ 
    if(exports.getURL('192.168.0.15', '/IMS4/Reports/calculateCLTV')) 
    { 
     cltv(); 
    } else { 
     console.log('CLTV error.') 
    } 
    }, 2000); 
} 

webnotis2 = require('./web-notification.js') 
var cltvOut; 
exports.cltv = function cltv() 
{ 
    clearTimeout(cltvOut); 
    cltvOut = setTimeout(function(){ 
    if(webnotis2.getUrl('192.168.0.15', '/IMS4/Reports/calculateCLTV')) 
    { 
     cltv(); 
    } else { 
     console.log('CLTV error.') 
    } 
    }, 2000); 
} 

ответ

2

Если это не является частью module.exports, то вы не можете. Например:

веб-notification.js

function getURL(host, path) { 
... 
} 

module.exports = exports = { 
    getURL: getURL 
}; 

основные-js.js

var webnotis = require('./modules/web-notification.js'); 
webnotis.getURL(...); 
+0

Я пробовал это, но когда я пытаюсь получить к нему доступ в другом модуле, он сообщает мне, что объект не существует. См. Править. – imperium2335

+0

@ imperium2335: Если функция определена и экспортирована * другим * модулем, вы не получаете доступ к ней через 'export.getURL'. 'export' содержит только значения, которые должны быть экспортированы модулем * current *. Вы должны получить к нему доступ через переменную, которой вы назначили модуль, точно так же, как причудливый, показанный в его ответе. Возможно, вам стоит взглянуть на то, как работают модули: http://nodejs.org/api/modules.html. –

+0

@FelixKling Я прочитал его и пример, но он не работает, когда я вызываю его из другого модуля. – imperium2335

0

Это называется экспорт модуля.

Пример из here:

создать файл ./utils.js, и определить функцию объединения(), как показано ниже ..

function merge(obj, other) { 

     //... 
    }; 

    exports.merge = merge; 

Теперь функция слияния доступна другая JS в utils как:

var utils = require('./utils'); 

utils.merge(); 
0
var webnotis = require('./modules/web-notification.js') 
     var host='urhost'; 
     var path='urpath'; 
     webnotis.getURL(host,path,function(err,res){ 
     if(!err){ 
       console.log('url is '+res); 
      } 

     }); 

веб-notification.js

 exports.getURL=function(host, path,cb) { 
      var url=host+path; 
      cb(null,url); 
    } 
Смежные вопросы