Ja som v súčasnej dobe snaží overiť niektoré vstupy v Express pomocou express-validator. Viem, že je to typické odovzdať ju ako samostatný middleware do trasy, ale potreboval som prístup k res
objekt, tak som musel ho napísať do spôsob, ako môžete vidieť nižšie.
Časť, ktorú som zápasí s je custom
validator. Rád by som sa to volať asynchrónne funkcia store.todoListTitleExists(title)
že dopytov na databázu a skontroluje, či názov už existuje. Ak názov neexistuje, mojím zámerom je zachrániť chybové hlásenie, ktoré som si neskôr displej ako blesková správa.
V súčasnej dobe, tento kód nefunguje. Díval som sa cez dokumentáciu, ale ja nedokážem vymyslieť, ako urobiť tento custom validator + chybové hlásenie správne fungovať, pretože je hovory asynchrónne funkciu. Pomôcť by apprecated.
Vďaka!
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');
}))