首页 > 编程语言 >mORMot 1.18 第08章 Delphi中的服务器端JavaScript

mORMot 1.18 第08章 Delphi中的服务器端JavaScript

时间:2024-04-29 13:55:38浏览次数:25  
标签:服务器端 08 JavaScript mORMot result var Delphi 函数

mORMot 1.18 第8章 Delphi中的服务器端JavaScript

在mORMot框架中,对JavaScript脚本的支持被称为Monkey On Rails(版权归Pavel Mashlyakovsky所有,邮箱:[email protected]),它借助了Mozilla基金会的SpiderMonkey类。

mORMot允许程序员编写功能强大的应用程序,但如果客户希望自定义应用程序,又该如何呢?通过集成JavaScript(具有即时编译特性的ECMAScript5),业务逻辑或特定于客户的细节(如报告)便可以在JavaScript中进行自定义。

为了使用这些功能,您将需要最新的库文件,请参考mORMot的文档以获取最新二进制文件的下载链接。

以下是一个用于生成报告的JavaScript函数示例:

function showProcessOutput(StudentID) {
    var student = JSGetStudentByID(StudentID);
    var document = 'javascript.dpr';
    var s = loadFile(document);
    var result = "<h1>" + student.Name + "</h1>";
    result += 'ID is ' + student.StudentID;
    result += "<pre>" + s + "</pre>";
    return result;
}

在Delphi的mORMot程序中,我们可以调用这个JavaScript函数 showProcessOutput(),而它又会调用Delphi程序中的两个函数:JSGetStudentByID()loadFile()

JSGetStudentByID()函数会从mORMot的典型函数 GetStudentByID()中获取 TSQLStudents记录的JSON表示。

我们可以通过访问URL http://localhost:888/ROOT/234234来调用这个JavaScript函数,并传入特定的学生ID。

该函数会返回类似下面的输出:

Joe Smith
ID is 234234

以下是一个简单的Delphi程序示例,该程序会在 http://localhost:888/root上提供服务:

program JSHttpApiServer;
// ... 程序代码 ...

完整的JavaScript示例代码包含在此书的可下载源代码中,位于JavaScript文件夹内。

请注意,如果您向JavaScript暴露了过多的函数,用户可能会创造出惊人的成果,但也可能破坏您的系统安全性。因此,请务必确保对JavaScript执行环境进行适当的隔离和限制(即沙箱处理)。

标签:服务器端,08,JavaScript,mORMot,result,var,Delphi,函数
From: https://www.cnblogs.com/hieroly/p/18163404

相关文章

  • JavaScript: FullScreen
     <!doctypehtml><html><head><metacharset="utf-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <metacontent="text/html;charset=utf-8"http-equiv=&......
  • 8086 汇编学习 Part 4
    寻址方式形式名称特点意义示例[idata]直接寻址用一个常量/立即数来表示地址用于直接定位一个内存单元MOVAX,[200][BX]寄存器间接寻址用一个变量来表示内存地址用于间接定位一个内存单元MOVAX,[BX][BX+idata]寄存器相对寻址用一个变量和常量......
  • 光影魔术手 v4.5.6.208 绿色便携版
    更新流水:2024.04.27:跟进官方4.5.6.208,第一版修改内容:by.星罗月兔&DxFans&haiyang457去校验(方案来自@星罗月兔),去更新,去多余组件及无用菜单;便携版集成新版启动器,简化了诸多文件存在,看起来更清爽;单文件版方案来自@haiyang457,特此感谢!下载地址:https://down.neoimaging......
  • 洛谷 P10084 [GDKOI2024 提高组] 计算
    洛谷传送门第一步是一个经典结论,\(L=m^{\gcd(a,b)}+1\),\(R=m^{\gcd(c,d)}\)。因为\(L\equiv1\pmodm\)且\(R\equiv0\pmodm\),所以可以把问题的范围改成\([1,n=R-L+1]\)。写出选数的生成函数:\[F(x)=\prod\limits_{i=1}^n(1+x^i)\]我们希望求......
  • AtCoder Beginner Contest 208 E
    E-DigitProducts点击查看代码map<int,int>f[20];voidsolve(){intn,k;cin>>n>>k;autos=to_string(n);intm=s.size();function<int(int,int,int,int)>dfs=[&](inti,intlimit,intis_num,intmul)->int{if(i......
  • JavaScript流程控制语句
    JavaScript流程控制语句在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们想要的业务逻辑和功能。分类一般我们把流程控制语句分为以下三类顺序结构选择结......
  • VS2008 LIB的升级改造
    今天用VS2019编译一个在VS2008下Coding的工程的时候,VS给出了一堆链接错误信息,如下图所示的一些错误: Error47errorLNK2019:unresolvedexternalsymbol"public:__thiscallstd::_Mutex::~_Mutex(void)"(??1_Mutex@std@@QAE@XZ)referencedinfunction"public:void__t......
  • 揭秘JavaScript数据世界:一文通晓基本类型和引用类型的精髓!
    在编程的世界里,数据是构建一切的基础。就像建筑师需要了解不同材料的强度和特性一样,程序员也必须熟悉各种数据类型。今天,我们就来深入探讨JavaScript中的数据类型,看看它们如何塑造我们的代码世界。一、JavaScript数据类型简介数据类型是计算机语言的基础知识,数据类型广泛用于变......
  • 在html中应用JavaScript
    1.在html中调用jsjs需要用<script>脚本写入位置</script>声明;也可以用外部文件引入,如<scripttype="text/javascript"src="script1.js"></script>。当js位于html的<head>内:这些脚本在选择触发它的时候被触发当js位于html的<body>内:这些脚本在页面加载时触发2.js的数据类......
  • ICESat-2 从ATL08中获取ATL03分类结果
    ICESat-2ATL03数据和ATL08数据的分段距离不一致,ATL08在ATL03的基础上重新分段,并对分段内的数据做处理得到一系列的结果,详情见数据字典:ATL08ProductDataDictionary(nsidc.org)ATL08使用DRAGANN算法对ATL03数据做了去噪处理,并使用分类算法对每个光子进行分类标志值标志......