qxVm/qxVm_sanbox/qxVm.sanbox.js
2023-09-01 09:18:21 +08:00

78 lines
2.4 KiB
JavaScript

let SANBOX = require('./z_sanbox/qxVm.sanbox');
function QXVm_help(){
console.log(`
:params js_code 用户自己的代码(可以是一个文件得绝对路径)
:params func_name 需要导出的方法
:params user_config 个性浏览器环境
user_config:{
isTest: Boolean // 如果测试则固定随机数种子, 时间戳
compress: Boolean, // 是否压缩js, 针对 ob,sojson 检测格式化
runConfig: Object { // 运行中的配置
proxy: false, // 是否代理(默认false)
logOpen: true // 是否日志打印(调试模式)
}
canvas: String, // 自定义canvas指纹
window_attribute: Object, // 自定义window属性(暴露window出来, 设置非浏览器环境对象/参数)
plugin: Array, // 自定义浏览器插件
env: Object { // 自定义浏览器环境
navigator: Object, // 针对 加密UA和请求UA必须一致的情况
location: Object, // 自定义属性
document: Object // 自定义属性
}
}
:exports: {
printLog: function,
{{func_name}}: {{func_name}},
}
`)
}
/**
* 注册 express APP
* @returns express
*/
function QXVM_registerServer() {
let APP = express();
APP.use(express.json({ limit: '50mb' }));
APP.use(express.urlencoded({ limit: '50mb', extended: true }));
APP.use(bodyParser.json({ limit: '10mb', extended: true }));
return APP;
}
/**
* 注册server回调,是否开始server,取决与port是否不为空
* @param {String} method get|post
* @param {String} route 路由
* @param {Number} port 端口, 如果端口为空, 则不开启服务
* @param {Function} callback 回调
*/
function QXVM_registerCallback(method, route, port, callback) {
let APP = QXVM_registerCallback.APP || (() => {
QXVM_registerCallback.APP = QXVM_registerServer();
return QXVM_registerCallback.APP;
})()
method = method.toLowerCase();
APP[method](route, callback);
if (port !== undefined && TOOLS.isNumber(port)) {
APP.listen(port, () => {
console.log(`框架服务开启 ${port} 端口`);
});
}
}
module.exports = {
sanbox: SANBOX.QXVm_sanbox,
help: QXVm_help,
registerServer: QXVM_registerServer,
registerCallback: QXVM_registerCallback,
};