在我的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);
    };

}

最佳答案

为什么不将模块作为对象传递,那样您就可以获取密钥

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);
    };

}

关于javascript - Node.js从实例获取模块名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34468611/

10-11 22:29
查看更多