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

Allow end-user to upload and execute javascript on server side

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

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

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

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

const cluster = require('cluster');

cluster.setupMaster({
    exec: 'fileUploadedByUser.js'
});

cluster.fork();

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

您还可以使用 pidusage 之类的东西来跟踪这些文件(工作人员)对 CPU 的使用情况,如果达到您设置的限制,则终止进程。