J'utilise Express avec Node et j'ai une exigence selon laquelle l'utilisateur peut demander l'URL sous la forme: http://myhost/fruit/Apple/red
.
Une telle demande retournera une réponse JSON.
Les données JSON, avant l'appel ci-dessus, ressemblent à:
{
"fruit": {
"Apple": "foo"
}
}
Avec la requête ci-dessus, les données JSON de réponse doivent être:
{
"Apple": "foo",
"color": "red"
}
J'ai configuré Express pour router comme suit:
app.get('/fruit/:fruitName/:fruitColor', function(request, response) {
/*return the response JSON data as above using request.params.fruitName and
request.params.fruitColor to fetch the fruit Apple and update its color to red*/
});
Mais ça ne marche pas. Je ne sais pas comment passer plusieurs paramètres, autrement dit, je ne sais pas si /fruit/:fruitName/:fruitColor
est la bonne façon de faire cela. Est ce
app.get('/fruit/:fruitName/:fruitColor', function(req, res) {
var data = {
"fruit": {
"Apple": req.params.fruitName,
"color": req.params.fruitColor
}
};
send.json(data);
});
Si cela ne fonctionne pas, essayez d’utiliser console.log (req.params) pour voir ce qu’il vous donne.
Pour ce que tu veux j'aurais utilisé
app.get('/fruit/:fruitName&:fruitColor', function(request, response) {
const name = request.params.fruitName
const color = request.params.fruitColor
});
ou mieux encore
app.get('/fruit/:fruit', function(request, response) {
const fruit = request.params.fruit
console.log(fruit)
});
où le fruit est un objet. Donc, dans l'application client, vous appelez simplement
https://mydomain.dm/fruit/{"name":"My fruit name", "color":"The color of the fruit"}
et en réponse, vous devriez voir:
// client side response
// { name: My fruit name, , color:The color of the fruit}