mORMot 1.18 第08章 Delphi中的服务器端JavaScript
  ZGYAxb2wjd2Z 19天前 23 0

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

在mORMot框架中,对JavaScript脚本的支持被称为Monkey On Rails(版权归Pavel Mashlyakovsky所有,邮箱:pavel.mash@gmail.com),它借助了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执行环境进行适当的隔离和限制(即沙箱处理)。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 19天前 0

暂无评论

推荐阅读
  trFW46kwzceA   2024年01月13日   16   0   0 Delphi
  trFW46kwzceA   2024年01月11日   19   0   0 Delphi
  jl63rPptnaFE   2024年02月21日   16   0   0 Delphi
  trFW46kwzceA   2024年01月10日   19   0   0 Delphi
ZGYAxb2wjd2Z