let-us-koa - 疾速玩转 koa 的最小化 web 运用 "容器"(脚手架)

Github Repo: https://github.com/qddegtya/let-us-koa

《let-us-koa - 疾速玩转 koa 的最小化 web 运用

Just another koa-seed-project.

Preview

《let-us-koa - 疾速玩转 koa 的最小化 web 运用

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 install

Run!

$ 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.

《let-us-koa - 疾速玩转 koa 的最小化 web 运用

同时,愿望给正在进修koa的你供应一个如许的脚手架,让你能够疾速起手。

So, Let us Koa!

Thanks

Koa.js

    原文作者:某小A
    原文地址: https://segmentfault.com/a/1190000005027555
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞