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

app.use(router(app)); 

"एक जनरेटर समारोह की आवश्यकता है" इस त्रुटि फेंकता इस तरह से कोआ-राउटर सेटअप करें। यह माना जाता है कि कोआ ऐप में विधियां जोड़ती हैं।'koa-रूटर', app.use (रूटर (ऐप्लिकेशन)) का उपयोग करना एक फेंकता त्रुटि संदेश

+0

koa-रूटर पैकेज में कुछ महीने पहले बदल गया है और, एप्लिकेशन वस्तु का विस्तार करने के रूप में आप ऊपर कोड जोड़ने के बाद कार्यक्षमता हटाया ... यह उस तरह से काम करता था, लेकिन यह एक ब्रेकिंग परिवर्तन https://github.com/alexmingoia/koa-router/issues/120 था। –

+0

@ जेम्स वाह। सीखने की कोशिश करते समय इतना भ्रमित हो सकता है। क्या आप अपनी टिप्पणी को उत्तर के रूप में पोस्ट कर सकते हैं ताकि मैं इसे उत्तर के रूप में चिह्नित कर सकूं। क्या आप इसके बजाय कोड कोड वाक्यविन्यास में भी जोड़ सकते हैं। – Rick

उत्तर

7

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

यूट्यूब पर आपके महान कोआ सीखने के वीडियो के लिए धन्यवाद और धन्यवाद! [लिंक] (https://www.youtube.com/channel/UC4nNCN49Fxexd30qtbzPDkg) – Rick

+0

कृपया ध्यान दें कि यदि आप ऊपर दिए गए कोड का उपयोग करते हैं तो कोआ-राउटर के नए संस्करणों में ओपी के रूप में सटीक समस्या होगी। ऐसा इसलिए है क्योंकि कोआ-राउटर कोआ 2 में स्थानांतरित हो गया है। पुराने कोआ-राउटर का उपयोग करने से समस्या हल हो सकती है। Https://github.com/alexmingoia/koa-router/issues/207 देखें – RajV

0

यह काम नहीं करेगा क्योंकि app एक वस्तु है। की तरह अपने रूटर स्थापित करने का प्रयास करें:

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

आशा यह आपके ऊपर साफ करता है :)

1

पहले, अपने को बदलें:

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

को

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

के बाद कि, कुछ राउटर नियम डालें, के लिए आर उदाहरण:

router.get('/', function *(next) { 
    this.status = 200; 
    this.body = {"Welcome":"Hello"}; 
}); 

और यह सब लिखने के अंत में: app.use(router.routes()); - इस लाइन एक महत्वपूर्ण कारक यहाँ है ... और आप बिल्कुल तैयार हैं।

संबंधित मुद्दे