2017-08-05 3 views
0

J'écris une API REST et j'ai un itinéraire défini comme suit:Javascript demande GET Paramètres Affichage comme chaînes au lieu de chiffres

router.get("/objects/:id?/:val1?/:val2?", getObject);

J'envoie la demande get suivante de Postman:

http://localhost:8000/objects?val1=5&val2=6 

J'utilise validateur express comme ça dans getObject:

req.check("val1", "Invalid param: val1").notEmpty().isInt(); 

Même si je passe en nombre, quand je ne fais que les ramasser comme des chaînes. Lorsque j'imprime sur la console à l'aide de JSON.stringify (req.query), ils s'affichent également sous forme de chaîne au lieu de numéros. Comment ferais-je pour réparer ça? Aurais-je besoin de définir les paramètres sous forme de nombres? Si c'était le cas, le validateur express ne serait pas aussi utile car il ne pourrait vérifier que si le paramètre a été passé.

+0

Est-ce que [this] (https://stackoverflow.com/a/11260389/8225099) aide? – Wartoshika

+0

Essayé, ne fonctionne pas. – abcd123

Répondre

0

Tout est passé dans l'URL même si la chaîne de requête sera reçue comme une chaîne à la fin du récepteur. Vous devrez utiliser explicitement:

Number(val1) 

ou

parseInt(val1) 

pour le convertir en nombre.