MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wyślij dane z NodeJS z powrotem do tej samej strony html po przesłaniu formularza

Nie możesz wysyłać danych na stronę HTML. HTML jest statycznym formatem pliku i nie może sam odbierać danych. Serwer może, ale nie plik HTML.

Możesz jednak przechwycić żądanie poczty po stronie klienta i wysłać je do klienta za pomocą XHR i ponowne odbieranie danych po stronie klienta, a następnie rób co chcesz, gdy skrypt otrzyma datos . Zasadniczo wszystko dzieje się między częścią JavaScript strony a serwerem Node, który odbiera dane POST i odsyła datos .

Oto prosty przykład przechwycenia żądania POST po stronie klienta:

document.querySelector('form').onsubmit = evt => {

  // don't submit the form via the default HTTP redirect
  evt.preventDefault();
  
  // get the form values
  const formData = {
    name1: document.querySelector('input[name=name1]').value,
    name2: document.querySelector('input[name=name2]').value
  }
  console.log('formData:', formData);
  
  // send the form encoded in JSON to your server
  fetch('https://your-domain.com/path/to/api', {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify(formData),
  })
  
  // receive datos from the server
  .then(resp => resp.json())
  .then(datos => {/* do what you want here */})
  
  // catch potential errors
  .catch(err => console.log('an error happened: '+err));
  
}
<form>
  <input name="name1" value="value1">
  <input name="name2" value="value2">
  <button type="submit">Submit</button>
</form>

PS:Powyższy fragment kodu zakończy się niepowodzeniem z błędem sieci, ponieważ obecny jest tylko skrypt po stronie klienta — nic nie działa na https://your-domain.com/path/to/api , ale w pytaniu umieściłeś już właściwy kod serwera. Po prostu zakończ skrypt serwera przez res.send(datos) .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak naprawić zbyt wiele błędów otwartych plików podczas agregacji miliardów rekordów?

  2. Pobierz nazwę miesiąca z daty w SQL

  3. Zmień nazwę pola typu złożonego znajdującego się w tablicy

  4. MongoDB Zamówienia/grupa agregacji sprzedaży Na miesiąc Suma suma + pole Count

  5. Jak uniknąć wielu procesów węzłowych wykonujących powtarzalne czynności?