koa2-demo

by 17koa

17koa / koa2-demo

express风格的最新的Koa 2项目的示例,已集成到koa-generator里(执行koa2命令生成即可)

196 Stars 59 Forks Last release: Not found MIT License 20 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

koa2-demo

npm version Build

这个项目是express风格的最新的Koa 2项目的示例,已集成到koa-generator里,算是集成一些所谓的最佳实践吧

Tech Stack

  • Koa 2
  • nodemon + runkoa(支持async/await,且不需关心babel)
  • pm2 for deployment(服务器部署)
  • express-style middlewares
    • koa-router
    • koa-views
    • koa-static
    • koa-bodyparser

Getting Start

git clone https://github.com/17koa/koa2-demo.git
cd koa2-demo
npm install
npm start

open in browser

http://127.0.0.1:3000/

启动方式

最简单启动方式

node bin/run

最常用的集成nodemon的方式,代码变动会自动重载(其实就是nodemon去执行bin/run)

npm start

支持pm2部署

 #npm run pm2
 pm2 start bin/run 

支持koa2的3种中间件写法

Koa 2是一个 middleware framework, 它提供了 3 种不同类型的中间件写法

  • common function
  • async function(新增)
  • generatorFunction

详见koa 2的文档

支持view层多种模板

koa-views
is using consolidate under the hood.

List of supported engines

需要注意的koa2使用的koa-views也是下一版本的[email protected],当前项目已经处理过了,不需要再处理的,哈哈

jade

npm i -S jade

in app.js

app.use(views(__dirname + '/views', {
  extension: 'jade'
}));

ejs

npm i -S ejs

in app.js

app.use(views(__dirname + '/views-ejs', {
  extension: 'ejs' 
}));

目录结构

➜  koa2-demo git:(master) tree . -L 2
.
├── LICENSE
├── README.md
├── app.js
├── bin
│   ├── run
│   └── www
├── node_modules
│   ├── co
│   ├── debug
│   ├── ejs
│   ├── jade
│   ├── koa
│   ├── koa-bodyparser
│   ├── koa-convert
│   ├── koa-json
│   ├── koa-logger
│   ├── koa-onerror
│   ├── koa-router
│   ├── koa-static
│   ├── koa-views
│   ├── nodemon
│   └── runkoa
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
├── routes
│   ├── index.js
│   └── users.js
├── views
│   ├── error.jade
│   ├── index.jade
│   └── layout.jade
└── views-ejs
    ├── error.ejs
    └── index.ejs

24 directories, 13 files

说明

  • bin/run(runkoa执行bin/www)
  • bin/www是常规koa启动文件,和express的一样
  • views是放默认的jade文件
  • views-ejs是放ejs文件

推荐

如果你喜欢express风格的生成,推荐koa-generator

如果你喜欢babel + koa2可以参考Minimal koa v2 boilerplate.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.