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