Return class 中的中间件

Return middleware in class

我有一个class带有中间件功能的,我想return。 在中间件中我想使用 this 语句,但现在它只是未定义。 Class :

export class Validator {
    constructor(options: validatorOptions) {
        this.schema = options.schema
        this.validateRequest = options.validateRequest
        this.validateResponse = options.validateResponse
    }

    private validate(req, res, next) {
        console.log(this.schema) //undefined
    }

    public getValidator() {
        return this.validate
    }
}

Class 声明:

import {Validator} from './validator/validator'

export const validator = () => {
    const config = {
    schema,
    validateRequest: true,
    validateResponse: true
  }

  let v = new Validator(config)

  return v.getValidator()
}

中间件使用:

import { validator } from './middleware'
app.use(validator())

如何在 returned 中间件中使用 this

validate 是一个回调,应该绑定到正确的 this,例如class 字段:

private validate = (req, res, next) => { ... }