lapis入門

NO IMAGE

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來安裝lapis

luarocks install lapis

Lapis編寫一個基本的 Nginx 配置和一個空白 Lapis 應用程式。

隨意檢視生成的配置檔案(nginx.conf是唯一重要的檔案)。以下是它的功能的簡要概述:


任何請求在/static/將提供靜態檔案(如果你要提供這個功能,你可以建立這個目錄)

對/favicon.ico的請求則響應/static/favicon.ico這個檔案

然後所有其他請求將由Lua提供,更具體地說是一個名為“app”的模組


當您使用lapis命令列工具啟動伺服器時,將處理nginx.conf檔案,並使用當前 Lapis 環境中的值填充模板變數。這將在下面更詳細地討論。

nginx 配置

讓我們來看看 lapis new

首先要注意的是,這不是一個正常的Nginx配置檔案。 Lapis 使用特殊的${{VARIABLE}}

記住,你需要 OpenResty 而不是正常安裝 Nginx。 Lapis 將忽略常規的 Nginx 二進位制檔案。

請繼續並啟動伺服器,看看它是什麼樣子:
lapis server

預設配置將伺服器置於前臺執行,使用CTRL C停止伺服器。
如果伺服器在後臺執行,可以使用 lapis term 停止。它必須在應用程式的根目錄中執行。此命令查詢正在執行的伺服器的PID檔案,並向該程序傳送 TERM 訊息(如果存在)

建立一個應用

現在你知道如何生成一個新專案並啟動和停止伺服器,你已經準備好開始編寫應用程式程式碼。本指南分為 MoonScriptLua 兩個。

如果你不確定要使用什麼,我建議通過兩個路徑閱讀。

Create an application with Lua
Create an application with MoonScript