Как передать данные из клиентского Javascript в node.js с помощью XMLHttpRequest? - PullRequest
0 голосов
/ 09 января 2019

В моем файле index.html есть входные данные 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.log('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.log('body: ' + req.body);
    res.send(req.body);

});

В этом случае вывод показывает: body: undefined

Как я могу отправить данные со своих клиентских страниц на серверную сторону, чтобы я мог использовать их для выполнения других моих операций?

1 Ответ

0 голосов
/ 09 января 2019

Вам просто нужно использовать анализатор тела 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.log('body: ',  req.body);
    res.send(req.body);
});

app.listen(port);

Просто установите npm для этого модуля, если его еще нет:

npm install body-parser
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...