node.js - nodejs如何动态加载资源javascript文件

标签 node.js

我有一个在 Nodejs 服务器上运行的资源加载器 JS 文件。我想放入一堆资源 js 文件,资源加载器将在初始化时将其加载到数组中。

    // resource loader js file
    var Resources = (function () {

    var resources = {};

    function Resources(){
    ... loading code here

    // example of use after loading
    resources[key].doStuff();
    }
})();
module.exports.Resources = Resources;

在同一目录中,开发人员可以根据需要放入新的 resources.js 文件。

// resource file
var ResourceA = (function () {

function ResourceA(){
... loading code here

// example of use after loading
  ResourceA.prototype.doStuff= function () {
        // do stuff
    };

})();

最佳答案

我不确定你的意思,但如果你想要的是在服务器端的单个文件夹中加载一堆模块,我构建了这个小函数来做到这一点。

var path = require('path'),
    walk = require('walk');

function findModules(opts,done){
    var walker  = walk.walk(opts.folder, { followLinks: false }),
        modules = [];

    walker.on('file', function(root, stat, next) {
        var current = path.join(root, stat.name),
            extname = path.extname(current);

        if(extname === '.js' && (opts.filter === undefined || opts.filter(current))){
            var module = require(current);
            modules.push(module);
        }

        next();
    });

    walker.on('end', function() {
        done(modules);
    });
}

然后,你可以这样调用它:

findModules({
    folder: 'path/to/folder',
    filter: undefined // either undefined or a filter function for module names
}, function(modules){
    // continue
});

安装 walk :

npm install walk --save

关于node.js - nodejs如何动态加载资源javascript文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15053897/

相关文章:

node.js - npm install 没有从依赖项安装 grunt js

node.js - Google App Engine 中的文件在哪里下载?

node.js - 将 Ember.js 与 Node.js 集成 (Express+Tower.js)

node.js - 运行shell命令并在http服务器中显示

javascript - 尝试运行 Brunch localhost 时出现问题

javascript - 在 node.js 应用程序中包含外部 .js 文件

javascript - Node.js 下载的图像已损坏

javascript - 免费的 Heroku 站点无法提供安全连接 : ERR_SSL_PROTOCOL_ERROR

node.js - 如何在heroku上的多个worker dyno上构建计划任务,其中每个worker dyno都处理一批不同的行

node.js - 为什么yarn install会下载node_modules作为依赖?