sql >> Databáze >  >> NoSQL >> MongoDB

Odešlete data z NodeJS zpět na stejnou html stránku po odeslání formuláře

Nemůžete odesílat data na stránku HTML. HTML je statický formát souboru a nemůže sám přijímat data. Server může, ale ne soubor HTML.

Co však můžete udělat, je zachytit váš požadavek na příspěvek na straně klienta a odeslat jej klientovi pomocí XHR a znovu přijímat zpět data na straně klienta a poté dělat, co chcete, když skript obdrží datos . V podstatě vše se děje mezi JavaScriptovou částí stránky a serverem Node, který přijímá POST data a posílá zpět datos .

Zde je jednoduchý příklad, jak můžete zachytit požadavek POST na straně 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:Výše ​​uvedený fragment selže se síťovou chybou, protože je přítomen pouze skript na straně klienta – na adrese https://your-domain.com/path/to/api neběží nic , ale ve své otázce jste již zahrnuli správný kód serveru. Stačí ukončit skript serveru pomocí res.send(datos) .




  1. Mongodb aktualizuje všechny dokumenty s jedinečným ID

  2. Porovnání dat v mongodb

  3. Vyhledávejte v celé kolekci (mongodb) pomocí nodejs

  4. Jak $setDifference v poli a objektu pomocí Mongo DB