| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | // routes.jsconst express = require('express');const router = express.Router();// 虚拟沙盒const vm = require('node:vm');global.Parse = {    title:"Parse"}const envContext = {    Parse:global.Parse,    module:module, // 允许代码段编写模块}// POST 路由处理/** * @param code 代码 */router.post('/func', async (req, res) => {    let { code,func,params } = req.body;    // 加载模块    console.log(req.body)    let cloudModule = loadModule(code);    // 调用 exampleFunc 方法    let result        try {        console.log(cloudModule,result)        result = await cloudModule[func](params); // 输出: Hello from exampleFunc!        res.json({            code:200,            data:result        });    } catch (error) {        res.status(500).json({             code:500,            error:error        });    }});function loadModule(code) {    // 使用 vm.runInNewContext 执行代码    vm.runInNewContext(code, envContext);    // 返回上下文中的模块对象    return envContext.module.exports;}module.exports = router;
 |