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