允许终端用户在服务器端上传和执行javascript



我正在学习javascript/nodeJS开发ERP解决方案。我希望允许ERP最终用户上传他们自己的定制脚本,这样他们就可以与ERP脚本进行交互。当然,用户脚本应该实现预定义的ERP API。

例如,这是ODOO (open-ERP)使用python编写的用户自定义脚本提供的功能。

我想知道如果完整的javascript堆栈可以做的伎俩:是否有可能导入一些上传的js文件在运行时在node.js,以执行它们?这种方法有什么问题吗?

我建议您使用worker。它看起来像这样:

const cluster = require('cluster');
cluster.setupMaster({
    exec: 'fileUploadedByUser.js'
});
cluster.fork();

但是我强烈建议你在执行它们之前检查所有这些文件,或者至少写一些代码来分析它们并找到任何系统函数/变量的使用。

还可以使用pidusage之类的东西来跟踪这些文件(worker)的CPU使用情况,如果它达到了您设置的限制,就杀死该进程。

最新更新