Come faccio a controllare se la stringa di query con i valori in Express.js/Node.js?

Come faccio a controllare se una stringa di query passato a un Express.js applicazione contiene i valori? Se ho un URL API che può essere: http://example.com/api/objects o http://example.com/api/objects?name=itemName, che cosa istruzioni condizionali lavoro per determinare quali ho a che fare con?

Il mio codice attuale è al di sotto, e restituisce sempre la ‘non dovrebbe avere alcuna stringa’ opzione.

if (req.query !== {}) {
    console.log('should have no query string');
}
else {
    console.log('should have query string');
}
Non sono sicuro di nodedi supporto di questo, ma forse si potrebbe usare risposta per verificare se la lunghezza di req.query è maggiore di 0.
Stai usando express?

OriginaleL’autore blundin | 2014-10-10

2 Replies
  1. 21

    Tutto quello che dovete fare è controllare la lunghezza delle chiavi nel tuo Object, come questo,

    Object.keys(req.query).length === 0


    Nota a margine: Si intende l’if-else in modo sbagliato,

    if (req.query !== {})     //this will run when your req.query is 'NOT EMPTY', i.e it has some query string.
    Grazie! Sì, l’errore è stato un errore di battitura nel convertire il mio codice vero e proprio per la questione.

    OriginaleL’autore Ravi

  2. 3

    Se si desidera controllare se non c’è la stringa di query, è possibile fare una regex di ricerca,

    if (!/\?.+/.test(req.url) {
        console.log('should have no query string');
    }
    else {
        console.log('should have query string');
    }

    Se siete alla ricerca di un singolo param provare questo

    if (!req.query.name) {
        console.log('should have no query string');
    }
    else {
        console.log('should have query string');
    }

    OriginaleL’autore Pranav Shekhar Jha

Lascia un commento