2015-12-26 3 views
2

В моем приложении Node.js после того, как мне требуются все мои модули в моем server.js, я передаю свои экземпляры в свою функцию. Моя функция должна выяснить, какой модуль передан, и он вызовет соответствующий файл.Node.js Получение имени модуля из экземпляра

Я попытался получить имя модуля следующим образом, но я не мог этого сделать.

Есть ли способ извлечь имя модуля? Это может быть и имя объекта.

это мой сервер файл расслоение плотной

var less = require("less"); 
var express = require("express"); 
var path = require('path'); 
var MyApp = require("./LocalModules/MyApp.js"); 
MyApp.InitializeAll([less, express]); 

И это, когда мне нужно разрешить имя модуля.

exports.InitializeAll = function (modules) { 
    for (var i = 0; i < modules.length; i++) { 
     var currentModule = modules[i]; 
     var localModuleName = "MyApp_" + currentModule.constructor.name + ".js"; 
     var appModule = require(localModuleName); 
     appModule.Initialize(currentModule); 
    }; 

} 

ответ

1

Почему бы не передать модули как объект, таким образом, вы можете просто получить ключи

MyApp.InitializeAll({less : less, express : express}); 

, а затем сделать

exports.InitializeAll = function (modules) { 

    for (var module in modules) { 

     var currentModule = modules[module]; 
     var localModuleName = "MyApp_" + module + ".js"; 
     var appModule  = require(localModuleName); 

     appModule.Initialize(currentModule); 
    }; 

} 
+0

Это верно, спасибо за указание на это, уже работает :) –

+0

Нет проблем ..... – adeneo

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