摘要:搭建一個的腳手架并不困難,但就如其他體力活一樣,我們并不想重復勞動其他腳手架生成出來的項目目錄結構可能并不是我們想要的一些基于和類型的框架型項目集成了等重量級組件,當然,這本身無可厚非,大家的定位不一樣我希望只通過一個最小化的容器去
Github Repo: https://github.com/qddegtya/let-us-koa
Just another koa-seed-project.
Preview Why搭建一個koa的腳手架并不困難,但就如其他"體力活"一樣,
我們并不想重復勞動
其他腳手架生成出來的項目目錄結構可能并不是我們想要的
一些基于Express和Koa類型的框架型項目集成了ORM等重量級組件,當然,這本身無可厚非,大家的定位不一樣
What we need我希望只通過一個最小化的"容器"去啟動一個應用,它大概只需要以下幾個功能就可以了,重要的是,它的目錄結構應該是清晰的,可維護的:
核心思想:模塊即同名文件
自動根據模塊級目錄生成路由
模塊可插拔
支持路由級中間件自動加載
腳手架只需要支持router,render,debug就可以了
所以,let-us-koa的原理非常簡單,如果你想快速跑起來一個koa應用,你可以這么做:
Play Install$ git clone https://github.com/qddegtya/let-us-koa $ cd let-us-koa $ npm installRun!
$ npm run start新增一個模塊
在modules下面新建目錄即可,目錄名稱就是模塊加載器自動prefix的一級路由名稱,比如我們這里的api和home
分別對應
/api /home
模塊必須包含的文件
app.conf.json // 模塊配置文件 controllers.js // 控制器app.conf.json
{ "routes": [ // 路由規則 // [HTTP方法]#[/your route]#[controller] "GET#/version#getApiVersion" ], "active": true // 模塊是否激活 }模塊下的controllers
"use strict" // 只需要導出對應的方法即可 module.exports = { getApiVersion: function* () { this.body = { "version": "v1" } } }全局配置
{ // 子模塊目錄 "modules": "modules", // 上傳目錄 "upLoadDir": "public/uploads", // 自定義中間件存放目錄 "middlewareDir": "middlewares", // 子模塊渲染服務的view path "subModuleViewPathName": "views", // 全局渲染選項 "renderSettings": { "autoescape": true, "cache": "memory", "ext": "html" } }中間件
應用級中間件
推薦把加載邏輯寫進middleware.js里
路由級中間件
let-us-koa自動為你處理了這塊中間件的加載邏輯
你可以參考下面的配置:
{ "routes": [ "time|log|GET#/version#getApiVersion" ], "active": true }
它表示,該路由將經過time,log中間件,對應的源文件就是middlewares下的同名文件,當然,你可以在全局的app.conf.g.json中更改這個配置
關于渲染方法的掛載如果你的某個子模塊需要掛載渲染方法,那你必須顯式地在子模塊app.conf.json中聲明needRender選項
{ "routes": [ "GET#/#getHomePage" ], "active": true, "needRender": true }
這樣,let-us-koa就會自動為你掛載這個render方法。
idea: 比如一些API服務模塊,可能不需要渲染服務,那就沒有必要構建render
靜態資源托管默認托管在種子項目根目錄下的public
?栗子一個"盡量最小化"的基于koa的web server容器,其實就可以跑起來一些小應用,這些應用也許不需要持久化存儲等復雜功能的支持,比如它只需要一個簡單的渲染服務?
瞧,我們可以利用它快速搭建一個內部的研發平臺導航站點,It"s Cool.
同時,希望給正在學習koa的你提供一個這樣的腳手架,讓你可以快速起手。
So, Let us Koa!
ThanksKoa.js
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79320.html
優刻得Compshare GPU平臺上線「黑悟空專屬套餐」啦!僅需3步,即可使用云端4090暢玩,新用戶還有20元免費體驗金!1、注冊Compshare賬號并完成實名認證https://www.compshare.cn/?ytag=seo2、創建GPU資源選擇單張40系顯卡,鏡像選擇黑神話悟空鏡像(預裝steam、游戲環境、GameViewer遠程工具)選擇適合自己的支付方式設置服務器密碼,并選擇...
摘要:整個項目簡單還具有實用價值,可作為的實戰項目學習的調試工具欄。查看文檔自動在個人首頁展示編程時長的工具。通過學習這些前沿的人工智能論文,提前了解在未來更多可能性可以將圖片和視頻轉換成漫畫風格的工具。興趣是最好的老師,HelloGitHub 讓你對編程感興趣!簡介HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。https://github.com/521xueweihan...
摘要:之所以會有容器云的出現,主要還是因為時代的發展趨勢所導致。把容器和容器調度跑到云端,這樣結合起來的服務就是容器云。容器是云原生的核心技術,容器的基本思想就是將需要執行的所有軟件打包到一個可執行程序包。之所以會有容器云的出現,主要還是因為時代的發展趨勢所導致。云的意思不用說,我們都知道云在網絡中的意思是虛擬的,抽象的。我們首先要了解什么是容器,容器就是一個操作系統的最小鏡像,在上面可以運行應用...
閱讀 1382·2021-09-22 10:02
閱讀 1862·2021-09-08 09:35
閱讀 4044·2021-08-12 13:29
閱讀 2594·2019-08-30 15:55
閱讀 2257·2019-08-30 15:53
閱讀 2295·2019-08-29 17:13
閱讀 2753·2019-08-29 16:31
閱讀 2948·2019-08-29 12:24