摘要:入門是為和編寫的框架。使用來安裝創建一個應用命令行工具附帶了一個命令行工具,可幫助您創建新項目和啟動服務器。在生產環境中,應當啟用緩存以獲得最佳性能。指令指定一個代碼塊,它將處理與其他不匹配的任何請求。將忽略常規的二進制文件。
lapis入門
Lapis 是為 Lua 和 MoonScript 編寫的 Web 框架。 Lapis 很有趣,因為它建立在Nginx 發行的 OpenResty 之上。您的 Web 應用程序直接在 Nginx 內部運行。 Nginx 的事件循環允許您使用 OpenResty 提供的模塊進行異步 HTTP 請求,數據庫查詢和其他請求。 Lua 的協程允許你編寫在后臺事件驅動的同步代碼。除了提供Web框架,Lapis還提供了用于在不同配置環境中控制OpenResty的工具。即使你不想使用Web框架,但如果你使用OpenResty,你也許會發現它依舊是是有用的。
這個 Web 框架實現了 URL 路由器,HTML 模板,CSRF 和會話支持,PostgreSQL 或 MySQL 支持的主動記錄系統,用于處理 model 和開發網站所需的一些其他有用的功能。
本指南希望能夠給大家作為一個教程和參考
基本設置將OpenResty安裝到系統上。如果你使用Heroku,那么你可以使用Heroku OpenResty模塊和Lua構建包。
使用luarocks來安裝lapisluarocks install lapis
創建一個應用lapis 命令行工具
Lapis附帶了一個命令行工具,可幫助您創建新項目和啟動服務器。要看看Lapis能做什么,在你的shell中運行lapis help
現在,我們將創建一個新項目。切換到一個干凈的目錄并運行如下命令:
lua new wrote nginx.conf wrote mime.types wrote app.moon
Lapis編寫一個基本的 Nginx 配置和一個空白 Lapis 應用程序。
隨意查看生成的配置文件(nginx.conf是唯一重要的文件)。以下是它的功能的簡要概述:
任何請求在/static/將提供靜態文件(如果你要提供這個功能,你可以創建這個目錄)
對/favicon.ico的請求則響應/static/favicon.ico這個文件
然后所有其他請求將由Lua提供,更具體地說是一個名為“app”的模塊
當您使用lapis命令行工具啟動服務器時,將處理nginx.conf文件,并使用當前 Lapis 環境中的值填充模板變量。這將在下面更詳細地討論。
nginx 配置讓我們來看看 lapis new 給我們的配置。雖然沒有必要立即查看,但如果想要構建更高級的應用程序或者甚至只是想將應用程序部署到生產環境,那么了解它是很重要的。
這里是生成的nginx.conf:
worker_processes ${{NUM_WORKERS}}; error_log stderr notice; daemon off; events { worker_connections 1024; } http { include mime.types; server { listen ${{PORT}}; lua_code_cache ${{CODE_CACHE}}; location / { default_type text/html; content_by_lua " require("lapis").serve("app") "; } location /static/ { alias static/; } location /favicon.ico { alias static/favicon.ico; } } }
首先要注意的是,這不是一個正常的Nginx配置文件。 Lapis 使用特殊的${{VARIABLE}}語法在啟動服務器之前注入環境設置。
error_log stderr notice 和 daemon off讓我們的服務器在前臺運行,并將日志打印到控制臺。這對于開發時是很好的,但是在生產時一定要關閉
lua_code_cache 對于開發時也是另一個有用的設置。當設置為 off 時,將導致所有Lua 模塊在每個請求時重新加載。對 Web 應用程序的源代碼的修改可以自動重載。在生產環境中,應當啟用(on)緩存以獲得最佳性能。默認為off。
content_by_lua 指令指定一個 Lua 代碼塊,它將處理與其他 location 不匹配的任何請求。它加載 Lapis 并告訴它為名為 app 的模塊提供服務。之前運行的 lapis new 提供了一個框架模塊app來開始
啟動服務器雖然可以手動啟動 Nginx ,但是 Lapis 包裝了一個方便的命令去構建配置和啟動服務器。
在 shell 中運行 lapis server 將啟動服務器。 Lapis 將嘗試查找您的OpenResty安裝。它將搜索以下目錄中的nginx二進制文件。 (最后一個代表你PATH中的任何東西)
"/usr/local/openresty/nginx/sbin/" "/usr/local/opt/openresty/bin/" "/usr/sbin/" ""
記住,你需要 OpenResty 而不是正常安裝 Nginx。 Lapis 將忽略常規的 Nginx 二進制文件。
請繼續并啟動服務器,看看它是什么樣子:
lapis server
默認配置將服務器置于前臺運行,使用CTRL + C停止服務器。
如果服務器在后臺運行,可以使用 lapis term 停止。它必須在應用程序的根目錄中運行。此命令查找正在運行的服務器的PID文件,并向該進程發送 TERM 消息(如果存在)
現在你知道如何生成一個新項目并啟動和停止服務器,你已經準備好開始編寫應用程序代碼。本指南分為 MoonScript 和 Lua 兩個。
如果你不確定要使用什么,我建議通過兩個路徑閱讀。
Create an application with Lua
Create an application with MoonScript
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39470.html
摘要:使用創建應用程序生成一個新項目如果您尚未閱讀,請閱讀入門指南,了解有關創建新項目骨架的信息以及,配置和命令的詳細信息。是包含應用程序的常規模塊。 使用Lua創建Lapis應用程序 生成一個新項目 如果您尚未閱讀,請閱讀入門指南,了解有關創建新項目骨架的信息以及OpenResty,Nginx配置和lapis命令的詳細信息。 您可以在當前目錄中通過運行以下命令啟動一個新的Lua項目: la...
摘要:配置及環境被設計于依據不同環境載入不同的配置來運行服務器。環境名稱僅影響加載的配置。例如,這里有一個的配置塊編譯時,首先檢查環境變量。默認日志記錄位置設置為,在默認的配置中指定。 配置及環境 Lapis 被設計于依據不同環境載入不同的配置來運行服務器。例如,可能您開發環境的配置設置為本地數據庫的URL,禁用代碼緩存和單個worker。然后,您生產環境的配置可能設定為遠程數據庫的 URL...
摘要:的異常處理錯誤的種類區分兩種錯誤可恢復和不可恢復錯誤。捕獲可恢復的錯誤幫助程序用于包裝一個操作,以便它可以捕獲錯誤并運行錯誤處理程序。相反,使用協同程序創建一個異常處理系統。 lapis的異常處理 錯誤的種類 Lapis 區分兩種錯誤:可恢復和不可恢復錯誤。 Lua 的運行時在執行期間拋出的錯誤或調用錯誤被認為是不可恢復的。 (這也包括 Lua 內置函數 assert ) 因為不可恢復...
摘要:老板查崗時,一個快捷鍵,立即關閉所有賴皮頁面。上傳,發布插件。從零開始,開發簡單的一鍵賴皮插件的上班族都在使用瀏覽器賴皮,所以我們選擇采用插件來實現功能。 很多人介紹過Chrome插件,但必須要說,插件開發就是擺弄一個小玩具,第一要素是實用,其次是好玩。 單純羅列各種功能是非常無趣的。 所以把一篇舊文拿出來與大家分享。 人,活著就是為了賴皮。 作為一個合格的開發人員,把30%的時間用...
閱讀 2043·2023-04-26 02:15
閱讀 2309·2021-11-19 09:40
閱讀 1057·2021-10-27 14:13
閱讀 3326·2021-08-23 09:44
閱讀 3622·2019-12-27 12:24
閱讀 663·2019-08-30 15:53
閱讀 1180·2019-08-30 10:53
閱讀 2168·2019-08-26 12:14