it编程 > 编程语言 > Delphi

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

270人参与 2024-05-12 Delphi

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执行环境进行适当的隔离和限制(即沙箱处理)。

注意:本文由hieroly翻译于2024年04月26日

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

mORMot 1.18 第09章 AutoFree

05-12

mORMot 1.18 第06章 概念

05-12

mORMot 1.18 第10章 连接表

05-12

mORMot 1.18 第07章 简单的读写操作

05-12

mORMot 1.18 第11章 JSON - JavaScript对象表示法

05-12

mORMot2 获取数据集1

05-12

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论