Javascript Plumier-在自定义验证中访问时,参数属性为null

Javascript Plumier-在自定义验证中访问时,参数属性为null,javascript,node.js,typescript,plumier,Javascript,Node.js,Typescript,Plumier,我有一个自定义验证,可以访问上下文的参数属性,但值总是未定义 这是我的密码: 函数isValidVersion(){ 返回val.custom(异步(val,i)=>{ const appIdIdx=i.route.action.parameters.findIndex(x=>x.name==“appId”) if(appIdIdx==-1) 抛出新错误(`在${i.route.controller.name}.${i.route.action.name}中未找到appId参数`) const

我有一个自定义验证,可以访问
上下文的
参数
属性
,但值总是
未定义

这是我的密码:

函数isValidVersion(){
返回val.custom(异步(val,i)=>{
const appIdIdx=i.route.action.parameters.findIndex(x=>x.name==“appId”)
if(appIdIdx==-1)
抛出新错误(`在${i.route.controller.name}.${i.route.action.name}中未找到appId参数`)

const appId=i.ctx.parameters![appidix]/
参数
值仅在验证过程完成后可用,因为它填充了已清除/验证的值

因此,是的,在验证过程中,您不能访问
参数
属性

FYI
参数
属性只是从http上下文值中提取的值列表,例如
查询
标题
正文
。作为一种解决方法,您可以从
ctx
属性访问参数的原始数据,例如
ctx.request.query
ctx.request.body

例如,如果从您的查询URL中提取的
appId
,您的代码将是:

函数isValidVersion(){
返回val.custom(异步(val,i)=>{
const appId=i.ctx.request.query.appId
如果(!appId)
抛出新错误(`在${i.route.controller.name}.${i.route.action.name}中未找到appId参数`)
//其他代码
//
})
}