node.js - 返回类中的中间件
问题描述
我有一个带有中间件功能的类,我想返回它。在中间件中我想使用this
语句,但现在它只是未定义的。班级 :
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
}
}
类声明:
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())
我如何this
在返回的中间件中使用?
解决方案
validate
是一个回调并且应该被绑定到正确this
的,例如使用类字段:
private validate = (req, res, next) => { ... }
推荐阅读
- android - 我可以在材质芯片上创建渐变背景颜色吗?
- php - 请帮助将输入类型文本从 PHP 代码更改为收音机
- bootstrap-4 - Bootstrap 4:手风琴不会折叠卡片
- c# - 如何将部分视图数据传递给父视图控制器
- php - 解决具有关系的字段的 laravel 验证
- javascript - 如何从 React Native 中的 TextField 获取值,由于空值导致无法将数据存储到数据库
- arrays - 看不懂 CLRS 问题 4-2 案例 2
- sql - 将具有多行的一列旋转到一个连接的行
- php - 如何在 PHP 中找到字符串中字符的第二个或第三个实例
- javascript - 使用 jquery 或 javascript 在单击时切换复选框标签周围的边框