使用KOA调用ES6类中间件

时间:2017-08-15 11:30:22

标签: javascript node.js ecmascript-6 koa

我在ES6课程中有一个功能,我试图将其称为中间件,但没有成功。在我的索引文件中,我有:

*我只包含相关代码

public class CoursConverter implements Converter {

public Object getAsObject(FacesContext context, UIComponent component, String value) {
    if (value != null && !value.isEmpty()) {
        return component.getAttributes().get(value);
    }
    return null;
}

public String getAsString(FacesContext context, UIComponent component, Object value) {
    if (value == null) {
        return "";
    }
    if (value instanceof Cours) {
        Cours cours = (Cours) value;
        String name = cours.getLibelleCours();
        return name;
    } else {
        throw new ConverterException(new FacesMessage(value + " est un Cours non valide"));
    }
} }

在我的install.js中,我有:

"use strict";
    const http        = require('http')
    const Koa         = require('koa')
    const app         = new Koa()
    const bodyParser  = require('koa-better-body')
    const Install     = require('./.system/install/install')   
    const install     = new Install()

class index {
  /**
  * Class constructor function
  * @Class Index
  * @method constructor
  * @return {undefined}
  */
  constructor () {
  }

  /**
  * Main entry method 
  * @Class Index
  * @method init async
  * @return {undefined}
  */
  async init(){
    // install helper
    app.use(install.setup)

    // response
    app.use(async ctx => {
      ctx.body = 'Hello World';
    });

    http.createServer(app.callback()).listen(8080);
  }
}

let init = new index(); init.init()

但是koa应用程序一直给我404错误。我知道静态方法可以解决这个问题,但我宁愿不使用静态方法。安装类具有中间件功能和标准功能。

2 个答案:

答案 0 :(得分:1)

您有404,因为您没有使用koa-router

答案 1 :(得分:0)

您应该在中间件功能中调用next()