123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // 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;
|