koa-generator

初始化

1
$ npm install -g koa-generator

生成 koa2 项目

1
$ koa2 projectName

可选参数

1
2
3
4
5
6
7
8
-h, --help          帮助
-V, --version 版本号
-e, --ejs 添加ejs模板引擎支持(默认是jade)
--hbs 添加hbs模板引擎支持(默认是hbs)
-H, --hogan 添加hogan.js支持
-c, --css <engine> 添加css样式 支持 less sass styus css(默认是css)
--git 添加 .gitignore
-f, --force force on non-empty directory

创建成功后安装项目依赖

1
2
$ cd projectName
$ npm i

启动

1
$ npm start

访问地址 http://localhost:3000/

运行依赖

  • koa-bodyparser

用来解析 post 传递过来的数据

koa2没有处理 post 请求参数的方法

post 请求通过 bodyparser 中间件后,可以由 req.body 拿到数据

此控件支持Josn,form,text类型

  • koa-convert

将所有传统生成器中间件转换为现代承诺中间件。

以generator作为中间件的写法将在koa@3里不支持,但是用co或koa-convert转过的还是可以的

  • koa-json

将返回的 text 格式自动排列为 json 格式

1
2
3
4
5
6
7
8
9
var json = require('koa-json');
var Koa = require('koa');
var app = new Koa();

app.use(json());

app.use((ctx) => {
ctx.body = { foo: 'bar' };
});
  • koa-logger

记录请求响应时间

1
2
3
4
5
const logger = require('koa-logger')
const Koa = require('koa')

const app = new Koa()
app.use(logger())
1
2
3
4
<-- GET /
--> GET / 200 835ms 746b
<-- GET /
--> GET / 200 960ms 1.9kb
  • koa-onerror

可定制化处理错误的中间件

  • koa-router

路由

1
2
3
4
5
6
7
8
9
10
11
12
13
var Koa = require('koa');
var Router = require('koa-router');

var app = new Koa();
var router = new Router();

router.get('/', (ctx, next) => {
// ctx.router available
});

app
.use(router.routes())
.use(router.allowedMethods());
  • koa-static

托管服务器内的静态资源

1
2
3
const Koa = require('koa');
const app = new Koa();
app.use(require('koa-static')(root, opts));
  • koa-views

模板引擎

在 ctx 中会出现 render API

1
2
3
4
5
router.get('/', async (ctx, next) => {
await ctx.render('index', {
title: 'Hello Koa 2!'
})
})
  • pug

模板,原名 Jade

开发依赖

  • nodemon

修改代码后自动重启服务器

本文结束,感谢您的阅读