在我的Node.js应用程序中,在我将所有模块都放入server.js后,我将他们的实例传递给我的函数。我的函数需要确定传递了哪个模块,它将调用相应的文件。
我试图通过以下方式获取模块名称,但我无法完成它。
有没有办法提取模块名称?它也可以是对象名称。
这是我的服务器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);
};
}
答案 0 :(得分: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);
};
}