最新Node.js框架:Koa 2 實例demo

koa2-demo

Screen-Shot-2016-04-01-at-1.52.56-PM.jpg

這個項目是express風格的最新的Koa 2項目的示例,已集成到koa-generator裏,算是集成一些所謂的最佳實踐吧javascript

Teck 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 browserjava

http://127.0.0.1:3000/node

啓動方式

最簡單啓動方式git

node bin/run

最經常使用的集成nodemon的方式,代碼變更會自動重載(其實就是nodemon去執行bin/run)github

npm start

支持pm2部署express

#npm run pm2
 pm2 start bin/run

支持koa2的3種中間件寫法

Koa 2是一個 middleware framework, 它提供了 3 種不一樣類型的中間件寫法npm

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

詳見koa 2的文檔json

支持view層多種模板

koa-views is using consolidate under the hood.服務器

List of supported enginesbabel

須要注意的koa2使用的koa-views也是下一版本的koa-views@next,當前項目已經處理過了,不須要再處理的,哈哈

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.

全文完

相關文章
相關標籤/搜索