Не можете да изпращате данни към HTML страница. HTML е статичен файлов формат и не може сам да получава данни. Сървър може, но не и HTML файл.
Това, което можете да направите обаче, е да прихванете вашата заявка за публикация от страна на клиента, да я изпратите на клиента с помощта на XHR
и получаване обратно на данните от страната на клиента отново, след това направете каквото искате, когато скриптът получи datos
. По принцип всичко се случва между JavaScript частта на страницата и Node сървъра, който получава POST данни и изпраща обратно datos
.
Ето прост пример за това как можете да прихванете POST заявката от страна на клиента:
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:Горният фрагмент ще се провали с мрежова грешка, защото присъства само скриптът от страна на клиента - нищо не се изпълнява на https://your-domain.com/path/to/api
, но вече сте включили правилния сървърен код във вашия въпрос. Просто завършете сървърния скрипт чрез res.send(datos)
.