2015-07-10 25 views
6
var app = require('koa')(); 
var router = require('koa-router'); 

app.use(router(app)); 

"Bir jeneratör işlevi gerektirir" Bu hatayı Atar Koa-yönlendiriciyi bu şekilde ayarlayın. Sözde koa uygulaması için yöntemler ekler.bir atar hata msg

+0

koa-yönlendirici paket geri birkaç ay değiştirdi ve yukarıda kodlu ettik, uygulama nesnesini uzatmak için işlevsellik kaldırıldı ... Bu şekilde çalıştı, ama bu bir kırılma değişim oldu https://github.com/alexmingoia/koa-router/issues/120. –

+0

@Oyunlar Vay. Öğrenmeye çalışırken çok kafa karıştırıcı olabilir. Yorumunuzu cevap olarak gönderebilir, böylece yanıt olarak işaretleyebilirim. Bunun yerine kullanmam gereken kod sözdizimini de ekleyebilir misiniz? – Rick

cevap

7

koa-yönlendirici paket geri birkaç ay değiştirdi ve siz Bu şekilde çalışmak için kullanılan ... yukarıda kodlu ettik, uygulama nesnesi genişletmek için işlevsellik kaldırıldı, ancak bir kırılma değişimdi:

http://github.com/alexmingoia/koa-router/issues/120. İşte

şimdi kurulum yolları nasıl bir örnektir:

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); 
+0

YouTube'daki harika koa öğrenim videolarınız için teşekkürler ve teşekkürler! [link] (https://www.youtube.com/channel/UC4nNCN49Fxexd30qtbzPDkg) – Rick

+0

Yukarıdaki kodu kullanırsanız, koa-router'ın daha yeni sürümlerinin OP olarak tam olarak sorun olacağını unutmayın. Çünkü koa-router koa2'ye geçti. Eski bir koa-yönlendirici kullanmak sorunu çözebilir. Https://github.com/alexmingoia/koa-router/issues/207 adresine bakın. – RajV

0

Çalışmıyor, çünkü app bir nesnedir. gibi yönlendirici kurma deneyin: bu sizi temizler

var app = require('koa')(); 
var Router = require('koa-router'); 
var pub = new Router(); 
app.use(pub.routes()); 

Hope :)

1

Birincisi, senin değiştirin:

var router = require('koa-router');

sonra

var router = require('koa-router')();

için bu, bazı yönlendirici kural ekle, fo r örnek: app.use(router.routes()); - Bu çizgi burada önemli bir faktördür ... Ve tüm hazırsınız:
router.get('/', function *(next) { 
    this.status = 200; 
    this.body = {"Welcome":"Hello"}; 
}); 

Ve tüm bu yazma sonunda

.

İlgili konular