亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

lapis入門

endless_road / 3068人閱讀

摘要:入門是為和編寫的框架。使用來(lái)安裝創(chuàng)建一個(gè)應(yīng)用命令行工具附帶了一個(gè)命令行工具,可幫助您創(chuàng)建新項(xiàng)目和啟動(dòng)服務(wù)器。在生產(chǎn)環(huán)境中,應(yīng)當(dāng)啟用緩存以獲得最佳性能。指令指定一個(gè)代碼塊,它將處理與其他不匹配的任何請(qǐng)求。將忽略常規(guī)的二進(jìn)制文件。

lapis入門

Lapis 是為 Lua 和 MoonScript 編寫的 Web 框架。 Lapis 很有趣,因?yàn)樗⒃贜ginx 發(fā)行的 OpenResty 之上。您的 Web 應(yīng)用程序直接在 Nginx 內(nèi)部運(yùn)行。 Nginx 的事件循環(huán)允許您使用 OpenResty 提供的模塊進(jìn)行異步 HTTP 請(qǐng)求,數(shù)據(jù)庫(kù)查詢和其他請(qǐng)求。 Lua 的協(xié)程允許你編寫在后臺(tái)事件驅(qū)動(dòng)的同步代碼。除了提供Web框架,Lapis還提供了用于在不同配置環(huán)境中控制OpenResty的工具。即使你不想使用Web框架,但如果你使用OpenResty,你也許會(huì)發(fā)現(xiàn)它依舊是是有用的。

這個(gè) Web 框架實(shí)現(xiàn)了 URL 路由器,HTML 模板,CSRF 和會(huì)話支持,PostgreSQL 或 MySQL 支持的主動(dòng)記錄系統(tǒng),用于處理 model 和開(kāi)發(fā)網(wǎng)站所需的一些其他有用的功能。

本指南希望能夠給大家作為一個(gè)教程和參考

基本設(shè)置

將OpenResty安裝到系統(tǒng)上。如果你使用Heroku,那么你可以使用Heroku OpenResty模塊和Lua構(gòu)建包。

使用luarocks來(lái)安裝lapis

luarocks install lapis

創(chuàng)建一個(gè)應(yīng)用

lapis 命令行工具

Lapis附帶了一個(gè)命令行工具,可幫助您創(chuàng)建新項(xiàng)目和啟動(dòng)服務(wù)器。要看看Lapis能做什么,在你的shell中運(yùn)行lapis help

現(xiàn)在,我們將創(chuàng)建一個(gè)新項(xiàng)目。切換到一個(gè)干凈的目錄并運(yùn)行如下命令:

lua new
wrote   nginx.conf
wrote   mime.types
wrote   app.moon

Lapis編寫一個(gè)基本的 Nginx 配置和一個(gè)空白 Lapis 應(yīng)用程序。

隨意查看生成的配置文件(nginx.conf是唯一重要的文件)。以下是它的功能的簡(jiǎn)要概述:


任何請(qǐng)求在/static/將提供靜態(tài)文件(如果你要提供這個(gè)功能,你可以創(chuàng)建這個(gè)目錄)

對(duì)/favicon.ico的請(qǐng)求則響應(yīng)/static/favicon.ico這個(gè)文件

然后所有其他請(qǐng)求將由Lua提供,更具體地說(shuō)是一個(gè)名為“app”的模塊


當(dāng)您使用lapis命令行工具啟動(dòng)服務(wù)器時(shí),將處理nginx.conf文件,并使用當(dāng)前 Lapis 環(huán)境中的值填充模板變量。這將在下面更詳細(xì)地討論。

nginx 配置

讓我們來(lái)看看 lapis new 給我們的配置。雖然沒(méi)有必要立即查看,但如果想要構(gòu)建更高級(jí)的應(yīng)用程序或者甚至只是想將應(yīng)用程序部署到生產(chǎn)環(huán)境,那么了解它是很重要的。

這里是生成的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;
    }
  }
}

首先要注意的是,這不是一個(gè)正常的Nginx配置文件。 Lapis 使用特殊的${{VARIABLE}}語(yǔ)法在啟動(dòng)服務(wù)器之前注入環(huán)境設(shè)置。

error_log stderr noticedaemon off讓我們的服務(wù)器在前臺(tái)運(yùn)行,并將日志打印到控制臺(tái)。這對(duì)于開(kāi)發(fā)時(shí)是很好的,但是在生產(chǎn)時(shí)一定要關(guān)閉

lua_code_cache 對(duì)于開(kāi)發(fā)時(shí)也是另一個(gè)有用的設(shè)置。當(dāng)設(shè)置為 off 時(shí),將導(dǎo)致所有Lua 模塊在每個(gè)請(qǐng)求時(shí)重新加載。對(duì) Web 應(yīng)用程序的源代碼的修改可以自動(dòng)重載。在生產(chǎn)環(huán)境中,應(yīng)當(dāng)啟用(on)緩存以獲得最佳性能。默認(rèn)為off。

content_by_lua 指令指定一個(gè) Lua 代碼塊,它將處理與其他 location 不匹配的任何請(qǐng)求。它加載 Lapis 并告訴它為名為 app 的模塊提供服務(wù)。之前運(yùn)行的 lapis new 提供了一個(gè)框架模塊app來(lái)開(kāi)始

啟動(dòng)服務(wù)器

雖然可以手動(dòng)啟動(dòng) Nginx ,但是 Lapis 包裝了一個(gè)方便的命令去構(gòu)建配置和啟動(dòng)服務(wù)器。

shell 中運(yùn)行 lapis server 將啟動(dòng)服務(wù)器。 Lapis 將嘗試查找您的OpenResty安裝。它將搜索以下目錄中的nginx二進(jìn)制文件。 (最后一個(gè)代表你PATH中的任何東西)

"/usr/local/openresty/nginx/sbin/"
"/usr/local/opt/openresty/bin/"
"/usr/sbin/"
""
記住,你需要 OpenResty 而不是正常安裝 Nginx。 Lapis 將忽略常規(guī)的 Nginx 二進(jìn)制文件。

請(qǐng)繼續(xù)并啟動(dòng)服務(wù)器,看看它是什么樣子:
lapis server

默認(rèn)配置將服務(wù)器置于前臺(tái)運(yùn)行,使用CTRL + C停止服務(wù)器。
如果服務(wù)器在后臺(tái)運(yùn)行,可以使用 lapis term 停止。它必須在應(yīng)用程序的根目錄中運(yùn)行。此命令查找正在運(yùn)行的服務(wù)器的PID文件,并向該進(jìn)程發(fā)送 TERM 消息(如果存在)

創(chuàng)建一個(gè)應(yīng)用

現(xiàn)在你知道如何生成一個(gè)新項(xiàng)目并啟動(dòng)和停止服務(wù)器,你已經(jīng)準(zhǔn)備好開(kāi)始編寫應(yīng)用程序代碼。本指南分為 MoonScriptLua 兩個(gè)。

如果你不確定要使用什么,我建議通過(guò)兩個(gè)路徑閱讀。

Create an application with Lua
Create an application with MoonScript

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/39470.html

相關(guān)文章

  • 創(chuàng)建Lapis應(yīng)用程序

    摘要:使用創(chuàng)建應(yīng)用程序生成一個(gè)新項(xiàng)目如果您尚未閱讀,請(qǐng)閱讀入門指南,了解有關(guān)創(chuàng)建新項(xiàng)目骨架的信息以及,配置和命令的詳細(xì)信息。是包含應(yīng)用程序的常規(guī)模塊。 使用Lua創(chuàng)建Lapis應(yīng)用程序 生成一個(gè)新項(xiàng)目 如果您尚未閱讀,請(qǐng)閱讀入門指南,了解有關(guān)創(chuàng)建新項(xiàng)目骨架的信息以及OpenResty,Nginx配置和lapis命令的詳細(xì)信息。 您可以在當(dāng)前目錄中通過(guò)運(yùn)行以下命令啟動(dòng)一個(gè)新的Lua項(xiàng)目: la...

    jzzlee 評(píng)論0 收藏0
  • lapis的配置及環(huán)境

    摘要:配置及環(huán)境被設(shè)計(jì)于依據(jù)不同環(huán)境載入不同的配置來(lái)運(yùn)行服務(wù)器。環(huán)境名稱僅影響加載的配置。例如,這里有一個(gè)的配置塊編譯時(shí),首先檢查環(huán)境變量。默認(rèn)日志記錄位置設(shè)置為,在默認(rèn)的配置中指定。 配置及環(huán)境 Lapis 被設(shè)計(jì)于依據(jù)不同環(huán)境載入不同的配置來(lái)運(yùn)行服務(wù)器。例如,可能您開(kāi)發(fā)環(huán)境的配置設(shè)置為本地?cái)?shù)據(jù)庫(kù)的URL,禁用代碼緩存和單個(gè)worker。然后,您生產(chǎn)環(huán)境的配置可能設(shè)定為遠(yuǎn)程數(shù)據(jù)庫(kù)的 URL...

    sarva 評(píng)論0 收藏0
  • lapis的異常處理

    摘要:的異常處理錯(cuò)誤的種類區(qū)分兩種錯(cuò)誤可恢復(fù)和不可恢復(fù)錯(cuò)誤。捕獲可恢復(fù)的錯(cuò)誤幫助程序用于包裝一個(gè)操作,以便它可以捕獲錯(cuò)誤并運(yùn)行錯(cuò)誤處理程序。相反,使用協(xié)同程序創(chuàng)建一個(gè)異常處理系統(tǒng)。 lapis的異常處理 錯(cuò)誤的種類 Lapis 區(qū)分兩種錯(cuò)誤:可恢復(fù)和不可恢復(fù)錯(cuò)誤。 Lua 的運(yùn)行時(shí)在執(zhí)行期間拋出的錯(cuò)誤或調(diào)用錯(cuò)誤被認(rèn)為是不可恢復(fù)的。 (這也包括 Lua 內(nèi)置函數(shù) assert ) 因?yàn)椴豢苫謴?fù)...

    cucumber 評(píng)論0 收藏0
  • Chrome插件開(kāi)發(fā)入門:如何實(shí)現(xiàn)一鍵上班賴皮

    摘要:老板查崗時(shí),一個(gè)快捷鍵,立即關(guān)閉所有賴皮頁(yè)面。上傳,發(fā)布插件。從零開(kāi)始,開(kāi)發(fā)簡(jiǎn)單的一鍵賴皮插件的上班族都在使用瀏覽器賴皮,所以我們選擇采用插件來(lái)實(shí)現(xiàn)功能。 很多人介紹過(guò)Chrome插件,但必須要說(shuō),插件開(kāi)發(fā)就是擺弄一個(gè)小玩具,第一要素是實(shí)用,其次是好玩。 單純羅列各種功能是非常無(wú)趣的。 所以把一篇舊文拿出來(lái)與大家分享。 人,活著就是為了賴皮。 作為一個(gè)合格的開(kāi)發(fā)人員,把30%的時(shí)間用...

    acrazing 評(píng)論0 收藏0
  • lapis請(qǐng)求處理

    摘要:處理函數(shù)的返回值用于渲染輸出。例如,如果不滿足某些條件,我們可以取消操作并重定向到另一個(gè)頁(yè)面是處理一個(gè)常規(guī)動(dòng)作的返回值,所以同樣的事情你可以返回一個(gè)動(dòng)作,可以傳遞給請(qǐng)求對(duì)象每個(gè)操作在調(diào)用時(shí)會(huì)請(qǐng)求對(duì)象作為其第一個(gè)參數(shù)傳遞。 lapis請(qǐng)求處理 每個(gè)被Lapis處理的HTTP請(qǐng)求在被Nginx處理后都遵循相同的基本流程。第一步是路由。路由是 url 必須匹配的模式。當(dāng)你定義一個(gè)路由時(shí),你也...

    Olivia 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<