是否可以让服务器运行node.js来在运行时安装和运行模块?

时间:2013-10-30 21:17:01

标签: node.js runtime driver

对于我的问题缺乏明确性的道歉,我将尝试在此解释我的意思。

我有一些现有的代码充当不同网络之间的桥梁(使用不同的协议)。桥在运行时连接到的网络可以更改,并且在运行时之前无法知道网络的类型。因此,我需要编写一些可以在运行时有效地请求,下载,“安装”和运行“驱动程序”而无需重新启动的内容。这可能吗?

我对node.js完全不熟悉,所以我试图找出它是否可行,否则我将把代码移植到我已经拥有的Java OSGi中(由其他人编写)。

1 个答案:

答案 0 :(得分:3)

如果驱动程序是node.js模块,您可以将它们放在npm存储库中并通过编程方式通过npm安装:

var npm = require('npm');

function install (module, callback) {
    npm.load({ 
        save : true,
        loglevel : 'silent'
    }, function (err) {
        if (err) return callback(err);
        npm.commands.install([module], callback);
    })
}

install('express', function (err) {
    if (err) throw err;
    console.log('Installed!');
});

不幸的是,这个API没有很好的文档记录(几乎没有记录),所以你必须破解一点来揭示可用的选项。