parent
eb03d9f61e
commit
3560651bbc
3 changed files with 10 additions and 7 deletions
13
Readme.md
13
Readme.md
|
@ -116,25 +116,28 @@ app.use(ctx => {
|
||||||
app.listen(3000);
|
app.listen(3000);
|
||||||
```
|
```
|
||||||
|
|
||||||
## Example with old version, Koa < 2
|
## Example with old signature
|
||||||
|
|
||||||
|
If you want to use old signature or be compatible with old middleware, you must use [koa-convert](https://github.com/gyson/koa-convert) to convert legacy generator middleware to promise middleware.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const Koa = require('koa');
|
const Koa = require('koa');
|
||||||
const app = new Koa();
|
const app = new Koa();
|
||||||
|
const convert = require('koa-convert')
|
||||||
|
|
||||||
// logger
|
// logger
|
||||||
|
|
||||||
app.use(function *(next){
|
app.use(convert(function *(next){
|
||||||
const start = new Date;
|
const start = new Date;
|
||||||
yield next;
|
yield next;
|
||||||
const ms = new Date - start;
|
const ms = new Date - start;
|
||||||
console.log(`${this.method} ${this.url} - ${ms}`);
|
console.log(`${this.method} ${this.url} - ${ms}`);
|
||||||
});
|
}));
|
||||||
|
|
||||||
// response
|
// response
|
||||||
|
|
||||||
app.use(function *(){
|
app.use(ctx => {
|
||||||
this.body = 'Hello World';
|
ctx.body = 'Hello World';
|
||||||
});
|
});
|
||||||
|
|
||||||
app.listen(3000);
|
app.listen(3000);
|
||||||
|
|
|
@ -92,7 +92,7 @@ module.exports = class Application extends Emitter {
|
||||||
use(fn) {
|
use(fn) {
|
||||||
debug('use %s', fn._name || fn.name || '-');
|
debug('use %s', fn._name || fn.name || '-');
|
||||||
if (typeof fn !== 'function') throw new TypeError('middleware must be a function!');
|
if (typeof fn !== 'function') throw new TypeError('middleware must be a function!');
|
||||||
if (isGeneratorFunction(fn)) throw new TypeError('Support for generators has been removed. Use Promises or wrap your generator with co.wrap');
|
if (isGeneratorFunction(fn)) throw new TypeError('Support for generators has been removed. See the documentation for examples of how to convert old middleware https://github.com/koajs/koa#example-with-old-signature');
|
||||||
this.middleware.push(fn);
|
this.middleware.push(fn);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,6 +66,6 @@ describe('app.use(fn)', function(){
|
||||||
it('should throw error for generator', function(){
|
it('should throw error for generator', function(){
|
||||||
const app = new Koa();
|
const app = new Koa();
|
||||||
|
|
||||||
(() => app.use(function *(){})).should.throw('Support for generators has been removed. Use Promises or wrap your generator with co.wrap');
|
(() => app.use(function *(){})).should.throw(/.+/);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue