验证错误:schema[parameter].validateAsync 不是函数

问题描述

我正在尝试在 express 中创建 API。当我打电话时,我收到上述错误。 我浏览了下面的 GitHub 链接,其中包含类似问题的解决方案,但没有一个我有用。下面是我的代码

API:

http://localhost:4040/v1/trips/get-all-filtered?offset=0&limit=10&from=2021-01-28T00:00:00.175Z&to=2021-02-04T00:00:00.175Z&technicians=0faaa22e-d672-44f5-a30a-3b2e5298a967&status=trip_ended

架构:(trip.validator.js)

const Joi = require('joi');

getAllFiltered: {
    query: Joi.object({
      offset: Joi.string(),limit: Joi.string(),from: Joi.string(),to: Joi.string(),technicians: Joi.array().items(Joi.string()),status: Joi.string(),enterprise_id: Joi.string(),payment_status: Joi.string().valid('pending','invoiced','paid')
    })
  }

路线:(trips.route.js)

let router = require('express').Router();
const { validate } = require('express-validation');
const tripValidation = require('../validators/trip.validator');
const tripController = require('../controllers/trip.controller');
const AuthMiddleware = require('../middlewares/auth.middleware')

router.get('/get-all-filtered',[
    AuthMiddleware.isAuthorized,validate(tripValidation.getAllFiltered)
  ],(req,res) => {
    tripController.getAllFiltered(req,res)
  }
)

链接

解决方法

所以,我想出了问题所在。出于某种原因,API 端点与另一个端点发生冲突。我只是将 API 路由从底部移到顶部,这似乎解决了问题。