// routes.js const 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;