Con la soluzione proposta da Robert, essere consapevoli del fatto che ogni volta che Si letto da req.query
, sarà necessario utilizzare le chiavi minuscole. Questo rende le future aggiunte al tuo errore API incline.
Ecco un pezzo alternativo di middleware, utilizzando un Proxy object per modificare il comportamento di req.query[...]
, in modo che le ricerche sono case insensitive:
app.use((req, res, next) => {
req.query = new Proxy(req.query, {
get: (target, name) => target[Object.keys(target)
.find(key => key.toLowerCase() === name.toLowerCase())]
})
next();
});
Oltre ad essere meno soggetto ad errori, questo approccio lascia anche il req.query
intatta per operazioni di enumerazione, in cui la soluzione originale potrebbe potenzialmente creare coppie chiave/valore duplicate.
fonte
2017-09-04 11:18:22
Grazie! Provenendo da IIS, questo sembra strano che tale requisito di base sia trascurato. – SamSerious
Forse nel mondo IIS, l'uso dei parametri di query con il caso mix è più comune che altrove :) Ho sempre usato i parametri minuscoli. – robertklep
cosa succede se un utente digita parametri di query con casi misti? :) – SamSerious