У меня есть ввод HTML в моем файле index.html.
<input type = "text" id = "handle" >
<input type = "text" id = "message" >
<button id = "send">send</button>
Когда я заполняю данные и нажимаю «Отправить», я хочу отправить их в свой скрипт узла, где я могу что-то сделать с переданными данными.
Мой сценарий index.html:
$("#send").on("click", function() {
var message = $("#message").val();
var handle = $("#handle").val();
var xhr = new XMLHttpRequest();
var data = {
param1: handle,
param2: message
};
xhr.open('POST', '/data');
xhr.onload = function(data) {
console.info('loaded', this.responseText);
};
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(data));
});
И как я пытался получить данные в моем серверном файле test.js.
app.post('/data', function(req, res){
var obj = {};
console.info('body: ' + req.body);
res.send(req.body);
});
В этом случае вывод показывает: тело: undefined
Как я могу отправить данные с моих клиентских страниц на серверную, чтобы я мог использовать их для выполнения других своих операций?
так как вы используете jquery, почему бы не использовать $ .ajax (... также, что ваша конечная точка делает сообщение .. "/ data"? Обычно node.js находится на другом порту вашего обычного сайта, если он не используется родным, также см. : stackoverflow.com/questions/4295782/…
Какую версию экспресса вы используете?
@madalinivascu У меня в настоящее время нет ошибок в интерфейсной консоли.
@wscourge Сейчас я использую Express v. 6.4.1
Не могли бы вы вставить всю свою экспресс-конфигурацию? Меня интересуют все ваши звонки по app.use().



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам просто нужно использовать парсер тела JSON в Express, например:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(express.static('./'));
/* Parse JSON data using body parser. */
app.use(bodyParser.json());
app.post('/data', function(req, res){
console.info('body: ', req.body);
res.send(req.body);
});
app.listen(port);
Просто выполните установку npm для этого модуля, если он еще не установлен:
npm install body-parser
есть ли у вас консольные ошибки в вашем браузере (во внешнем интерфейсе)?