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参数`)
//其他代码
//
})
}