從客戶端JavaScript進行全棧開發「No Node.js」

我們來看一個開發人員的實驗,他希望創建一種只使用客戶端JS編寫完整堆棧應用程序的方法。

從客戶端JavaScript進行全棧開發「No Node.js」

如果您認為上面的標題聽起來像矛盾或某種黑魔法,請再想一想。使用Lizzie,您可以(至少在理論上)在JavaScript中創建您的整個業務邏輯,在瀏覽器中,將您的Lizzie代碼提交給服務器進行評估(安全),並將JSON返回給您的客戶端。

為了記錄,這假設你以前在C#中創建了通用的 “鉤子”,允許你的Lizzie代碼做一些有用的事情,因為開箱即用,Lizzie除了創建列表,詞典之外幾乎不能做任何事情。基本數學,以及一些簡單的字符串操作。但是,如果您創建用於從數據庫等中檢索數據的通用方法,則在JavaScript中將業務邏輯創建為Lizzie代碼,並將此代碼傳輸到服務器以進行評估,實際上是輕而易舉的。這反過來創建了一個更加動態的服務器端API,允許您(一段時間後)從JavaScript中執行任何操作,而無需使用(任何)服務器端語言編寫代碼。至少理論是這樣的。要了解我在說什麼,請查看以下代碼。

從客戶端JavaScript進行全棧開發「No Node.js」

上述C#Web API代碼的優點在於端點接受CODE作為輸入。這允許您創建單個HTTP REST端點,通過POST請求接受代碼,該代碼將(安全地)評估您的代碼,將JSON返回給客戶端。

這再次有效地允許您(至少在理論上)在客戶端JavaScript中創建整個應用程序,連接到“通用”後端,將服務器簡化為簡單的“Lizzie評估器”, 從而可以創建可論證的整個Web Angular,React等中的應用程序。下面是我使用此模式創建的一個簡單示例應用程序的屏幕截圖,它允許我在瀏覽器中將代碼鍵入到CodeMirror實例中,將我的代碼發送到我的服務器,評估代碼並顯示另一個CodeMirror實例中的評估結果。

從客戶端JavaScript進行全棧開發「No Node.js」


分享到:


相關文章: