Şu anda express-validator kullanarak Express'teki bazı girdileri doğrulamaya çalışıyorum. Bunu rotaya ayrı bir ara katman olarak geçirmenin tipik olduğunu biliyorum, ancak res
itiraz ediyorum, bu yüzden aşağıda gördüğünüz şekilde yazmak zorunda kaldım.
Mücadele ettiğim kısım şu: custom
doğrulayıcı. Eşzamansız bir işlevi çağırmasını istiyorum store.todoListTitleExists(title)
bu, bir veritabanını sorgular ve bir başlığın zaten var olup olmadığını denetler. Başlık yoksa, niyetim daha sonra bir flash mesajı olarak görüntüleyebileceğim bir hata mesajını kaydetmektir.
Şu anda bu kod çalışmıyor. Belgelere baktım, ancak bu özel doğrulayıcı + hata mesajının eşzamansız bir işlevi çağırdığı için düzgün çalışmasını nasıl sağlayacağımı anlayamıyorum. Herhangi bir yardım apprecated olacaktır.
Teşekkürler!
app.post("/lists/:todoListId/edit",
(req, res) => {
let store = res.locals.store;
let todoListId = req.params.todoListId;
let title = req.body.todoListTitle;
await body('todoListTitle')
.trim()
.isLength({ min: 1 })
.withMessage("The list title is required.")
.isLength({ max: 100 })
.withMessage("The list title cannot be over 100 characters")
.custom(store.todoListTitleExists(title).then(titleExists => {
if(titleExists) return Promise.reject('Title already exists');
}))