Route.resource()のバリデーターに問題があります。バリデーターが適用されておらず、コマンド「adonis route:list」を実行すると、av:TrainingPlanおよびWorkoutバリデーターがリストされません。他のバリデーターが/ users、/ sessions /、/ passwordsの「Route.post」のような単一のエンドポイント動詞で動作していることがわかります。開始フォルダーの下のapp.jsで、レジスターも作成され、すべてのバリデーターがadoniscliによって生成されたことを確認しました。
私のルートファイルはドキュメントに基づいて作成されました:
Route.group(() => {
Route.post('files', 'FileController.store')
Route
.resource('/training-plans', 'TrainingPlanController')
.apiOnly()
.validator(new Map([
[['training-plans.store'], ['TrainingPlan']]
]))
Route
.resource('/workouts', 'WorkoutController')
.apiOnly()
.validator(new Map([
[['workouts.store'], ['Workout']]
]))
}).middleware(['auth'])
TrainingPlan Validator:
'use strict'
class TrainingPlan {
get validateAll () {
return true
}
get rules () {
return {
title: 'required',
description: 'required',
start_date: `date|before:${new Date()}`,
end_date: `date|before:${new Date()}`
}
}
}
module.exports = TrainingPlan
私が見逃しているものは何ですか?
この問題は、「/ workouts」および「/ training-plans」ルートの前の「/」を削除することで解決されました。
マップバリデーター内の「workouts.store」と「training-plans.store」の前に「/」を配置することはテストしていません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加