2017-02-11 1 views
0

Ich installierte Koa, dann installierte Koa-Ansichten. Danach habe ich kopiert Beispiel-Code aus der koa-Ansichten docs und klebte es in index.jsWarum bekomme ich eine Fehlermeldung "app.use() benötigt eine Generatorfunktion" mit koa-views Middleware?

'use strict'; 

const koa = require('koa'); 
const app = koa(); 

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

// Must be used before any router is used 
app.use(views(__dirname + '/views', { 
    map: { 
     html: 'underscore' 
    } 
})); 
app.use(function* (next) { 
    this.state = { 
     session: this.session, 
     title: 'app' 
    }; 
    yield this.render('user', { 
     user: 'John' 
    }); 
}); 

Wenn ich versuche node index.js diesen Code mit Befehl auszuführen bekomme ich einen Fehler:

enter image description here

Was ist das Problem? Warum funktioniert es nicht?

p.s. Versuchen

node version: v6.9.5; 
koa version: 1.2.5; 
koa-views version: 5.2.0 

Antwort

0

npm install [email protected] Installation scheint, wie es vielleicht etwas anderes mit der neuen Version sein. Siehe here für wo ich die Lösung bekommen habe.

Ich habe es versucht, und ich habe nicht mehr den Fehler.

+1

Thaks viel. Es half! –

+2

Koa 2 verwendet Async-Funktionen anstelle von Generatorfunktionen für seine Middleware. Wenn Sie Middleware wie 'koa-views' verwenden, müssen Sie sicherstellen, dass Sie die richtige Version verwenden, abhängig davon, welche Version von Koa Sie verwenden. 'koa-views @ 4.1.0 @' verwendet immer noch Generatorfunktionen für seine Middleware, weshalb es hier funktioniert. – saadq

Verwandte Themen