Przesyłanie parametrów HTTP

0

Witam,

pisze aplikację na androida i REST API do niej w node.js. Pobieram użytkowników GETem, ale musze przesłać zmienną do tego GETa i nie wiem jak się za to zabrać. Jak biorę POSTem to wysyła, ale nie pobiera mi znowu tablicy obiektów z bazy danych.

1
Rafal Sieczkowski napisał(a):

Witam pisze aplikaje na androida i rest api do niej w node.js pobieram użytkownikow getem ale musze przesłać zmienna do tego geta i nie wiem jak sie za to zabrać bo jak biorę postem to wysyła ale nie pobiera mi znowu tablicy obiektow z bazy danych.

Jeśli używasz express to zmienną przekaż w ścieżce np.

app.get('/users/:zmienna', (req, res) => {
  console.log(req.params.zmienna)
})

i wtedy odwołuj się do adresu np. example.com/users/abc (wtedy zmienna będzie miała wartość abc).
https://expressjs.com/en/guide/routing.html

lub pobierz z parametrów GET już bezpośrednio z url np.

const querystring = require('querystring');
const url = 'http://example.com/index.html?code=string&key=12&id=false';

console.log(querystring.parse(url));
// > { 'http://example.com/index.html?code': 'string', key: '12', id: 'false' }

https://nodejs.org/en/knowledge/HTTP/clients/how-to-access-query-string-parameters/

0
AdamWox napisał(a):

Nie piszę w Node, ale czy dobrze widzę? Czy querystring.parse() to zwykły split('&')?

Nie, querystring.parse() po prostu parsuje query string, i to nie jest tak proste jak split po &. Dochodzi do tego ogarnianie klucz=value, urlDecode (bo np + oraz %20 to jest " ") oraz parametry sekwencyjne np klucz[]=value1&klucz[]=value2, to {klucz: ['value1', 'value2']}.

0

W express w ścieżce wildcard, można tak:

router.get(['/*.jpg', '/*.png'], async function(req, res, next) {
  const tokenEncoded = (new URL(req.url, "http://a.b")).searchParams.get("token");
  ...
});

gdzie req.url to np /resource/image/482164.1.jpg/?token=xxxyyyzzz

1 użytkowników online, w tym zalogowanych: 0, gości: 1