sql >> Database teknologi >  >> NoSQL >> MongoDB

Send data fra NodeJS tilbage til samme HTML-side efter indsendelse af formular

Du kan ikke sende data til en HTML-side. HTML er et statisk filformat og kan ikke modtage data af sig selv. En server kan, men ikke en HTML-fil.

Hvad du dog kan gøre, er at opsnappe din postanmodning på klientsiden, sende den til klienten ved hjælp af XHR og modtagelse af data på klientsiden igen, og gør derefter hvad du vil, når scriptet modtager datos . Grundlæggende sker alt mellem JavaScript-delen af ​​siden og Node-serveren, der modtager POST-data og sender datos tilbage .

Her er et simpelt eksempel på, hvordan du kan opsnappe POST-anmodningen på klientsiden:

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:Ovenstående kodestykke vil mislykkes med en netværksfejl, fordi kun scriptet på klientsiden er til stede - der kører ikke noget på https://your-domain.com/path/to/api , men du har allerede inkluderet den rigtige serverkode i dit spørgsmål. Afslut bare serverscriptet med res.send(datos) .




  1. mongoose populate returnerer null-array

  2. Hvordan konverterer man en eksisterende relationsdatabase til et nøgleværdilager?

  3. Kan et listefelt være en shard-nøgle i MongoDB?

  4. mongodb aggregation project objectId med concat