oh, hurrow Koa.js

<iframe src = ” https://ghbtns.com/github-btn.html?user=jasonshark&repo=koa-starter&type=star&count=true&size=large ” frameborder = “0” scrolling = “0” width = “160px” height = “30px”> </iframe>

<iframe src = ” https://ghbtns.com/github-btn.html?user=koajs&repo=koa&type=star&count=true&size=large ” frameborder = “0” scrolling = “0” width = “160px” height = “30px “> </iframe>

Koa é um framework da web node.js que é mais moderno do que expresso. Construiremos um servidor web funcional neste tutorial. Koa aproveita os recursos do es6, como geradores . Geradores não geram nada. Leia esse artigo para obter uma essência (as yielddeclarações de dicas são importantes). Estarei aqui quando você voltar.

Bem vindo de volta! Para usar isso, precisamos da versão mais recente do nó. Verificar com:

$ node -v
v0
.12.7

Em seguida, para executar nosso código es6 com $ node --harmony server.js. Para não digitar esse sinalizador –harmony o tempo todo, adicione um alias a ~ / .bash_profile :

alias node="node --harmony"
alias nodemon="nodemon --harmony"

Harmonia significa ES6. Nodemon é para nodemon .

Iniciar projeto

$ mkdir project-name
$ cd project
-name && npm init
$ npm install koa koa
-route --save

Faça um server.js simples :

var koa = require('koa');
var route = require('koa-route');
var app = koa();

// routes
app
.use(route.get('/', index));
app
.use(route.get('/about', about));

// es6 generators expected as arguments
function *index() {
// this is a Koa Context
// A Koa Context encapsulates node’s request and response objects into a single object
this.body = "<h1>Hello Koa!</h1>";
}

function *about() {
console
.log('Koa Context (this) has these properties: ');
console
.log(Object.keys(this));
this.body = "<h2>This is the about route</h2>";
}

app
.listen(8008);
console
.log('Koa listening on port 8008');

Aqui vemos os geradores es6. Os retornos de chamada de rota esperam geradores, não funções regulares. thisno gerador é especial em koa. Ele contém solicitação e resposta, bem como alguns outros bits úteis para aplicativos da web. Quando você clicar na rota / sobre, verá o seguinte:

Koa Context (this) has these properties: 
[ 'request',
'response',
'app',
'req',
'res',
'onerror',
'originalUrl',
'cookies',
'accept',
'state' ]

Ok um pouco diferente, nada de louco. Em seguida, queremos renderizar alguns arquivos de modelo. ejs será nosso mecanismo de template. co-views tem algumas opções de configuração para usar jade ou swig .. seja o que for.

$ npm install co-views ejs --save

Em seguida, em server.js, adicione:

var render = views(__dirname + '/views', { ext: 'ejs' });

...

function *index() {
this.body = yield render('index', {});
}

Isso é semelhante ao expresso. O objeto vazio são dados que podemos passar para o mecanismo de template. atua como entrada de entrada, portanto, adicione-a também.co-bodybody-parser

$ npm install co-body --save

Recursos

Aplicativo Koa CRUD: http://weblogs.asp.net/shijuvarghese/a-simple-crud-demo-with-koa-js

Modelos de exemplos Koa: https://github.com/koajs/examples/tree/master/templates

No futuro, implementaremos o OAuth com concessão e elaborarei um modelo inicial com mais recursos.

O código-fonte está DISPONÍVEL AQUI .

<iframe src = ” https://ghbtns.com/github-btn.html?user=jasonshark&repo=koa-starter&type=star&count=true&size=large ” frameborder = “0” scrolling = “0” width = “160px” height = “30px”> </iframe>