Já jsem v současné době snaží ověřit některé vstupy v Vyjádřit pomocí express-validator. Vím, že je to typické předat jako samostatný middleware do trasy, ale potřeboval jsem přístup k res
objekt, takže jsem musel napsat to tak, jak vidíte níže.
Ta část, která jsem zápasí s je custom
validátor. Rád bych, aby to volání asynchronní funkce store.todoListTitleExists(title)
že dotazy na databáze a zkontroluje, zda název již existuje. Pokud název neexistuje, můj záměr je zachránit se chybová zpráva, které jsem se později mohou zobrazovat jako flash zprávu.
V současné době, tento kód nebude fungovat. Díval jsem se na dokumentaci ale nemůžu přijít na to jak tohle udělat vlastní validátor + chybovou zprávu správně fungovat, protože to volání asynchronní funkce. Jakýkoliv pomoci chtěl bych být apprecated.
Díky!!!
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');
}))