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

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執行環境進行適當的隔離和限制(即沙箱處理)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章