var app = require('koa')();
var router = require('koa-router');
app.use(router(app));
拋出這個錯誤:使用「KOA路由器」,app.use(路由器(APP))拋出一個「需要生成函數」錯誤味精
AssertionError: app.use() requires a generator function
大量的示例代碼,以說這樣設置koa-router。它應該會向koa應用程序添加方法。
var app = require('koa')();
var router = require('koa-router');
app.use(router(app));
拋出這個錯誤:使用「KOA路由器」,app.use(路由器(APP))拋出一個「需要生成函數」錯誤味精
AssertionError: app.use() requires a generator function
大量的示例代碼,以說這樣設置koa-router。它應該會向koa應用程序添加方法。
相思樹路由器封裝改變幾個月前和刪除功能擴展的應用程序對象,您在上面......它曾經工作的方式編碼的,但它是一個重大更改:
http://github.com/alexmingoia/koa-router/issues/120。
這裏是你現在設置路由如何一個例子:
var app = require('koa')();
var router = require('koa-router');
// below line doesn't work anymore because of a breaking change
// app.use(router(app));
var api = router();
api.get('/', function *(){
this.body = 'response here';
});
app
.use(api.routes())
.use(api.allowedMethods());
app.listen(3000);
它不會工作,因爲app
是一個對象。嘗試設置你的路由器,如:
var app = require('koa')();
var Router = require('koa-router');
var pub = new Router();
app.use(pub.routes());
希望這將清除您:)
首先,你的改變:
var router = require('koa-router');
到
var router = require('koa-router')();
後那插入一些路由器規則fo R實施例:
router.get('/', function *(next) {
this.status = 200;
this.body = {"Welcome":"Hello"};
});
,並在所有這寫的結尾:app.use(router.routes());
- 這條線是這裏的關鍵因素......而你所有的設置。
相思樹路由器封裝改變幾個月前和刪除功能擴展的應用程序對象,如你上述編碼...它曾經以這種方式工作,但它是一個突破性的變化https://github.com/alexmingoia/koa-router/issues/120。 –
@James 哇。嘗試學習時可能非常混亂。你可以發表你的評論作爲答案,所以我可以將其標記爲已回答。你還可以添加我應該使用的代碼語法嗎? – Rick