Почему объект JSON не определен в приложении Node- Express - PullRequest
0 голосов
/ 25 января 2020

Я использую Node и express. В настоящее время пытаюсь проверить отправку httprequests на сервер, используя AJAX. Хотя все, кажется, работает нормально на стороне клиента, с JSON в полезной нагрузке запроса, как и ожидалось, объект появляется «неопределенным» к тому времени, когда он достигает моего кода на стороне сервера. Я потратил так много времени, пытаясь выяснить это, и был бы очень признателен за любую помощь с этим.

На стороне клиента JS:

   var testOb = {
    name: "me", 
    age: 30, 
    lives: "Ireland"}                        }

    var jsontest = JSON.stringify(testOb);

function xhtmR () {

let xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', '/word-request', true);
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xmlhttp.send(jsontest);
}

На стороне сервера:

 let express = require('express');
 let app = express();
 let bodyParser = require('body-parser');
 app.use(express.static('assets'));
 let request = require('request');
 app.use(bodyParser.json());

 app.use(bodyParser.urlencoded({useNewUrlParser: true}));

 app.post('/word-request', (req, res) => {
 console.log('request received for ')
 console.log(req.body.jsontest)
})

1 Ответ

0 голосов
/ 25 января 2020

?‍? Вы должны вызвать эту функцию: xHtmR, чтобы вызвать свой бэкэнд. Этот код выглядит следующим образом: 100

var testOb = {
  name: "me", 
  age: 30, 
  lives: "Ireland"}                        

  var jsontest = JSON.stringify(testOb);

function xhtmR () {

let xmlhttp = new XMLHttpRequest();

xmlhttp.open('POST', 'http://localhost:3000/word-request', true);
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xmlhttp.send(jsontest);
}

// call this function for send post to backend
// or you can add this function in your button click: on-click maybe.
xhtmR();

А теперь , вы можете изменить server с помощью этого кода ниже:

let express = require('express');
let app = express();
const cors = require('cors');
app.use(express.static('assets'));

app.use(cors({ origin: '*'}))

app.use(express.json());
app.use(express.urlencoded({useNewUrlParser: true}));

app.post('/word-request', (req, res) => {
  console.log(req.body)
})

app.listen(3000, () => {
  console.log('Server is up');
})

? После этого , не забудьте run ваш сервер, а затем вы можете загрузить свою html страницу, где вы загружаете javascript клиентскую часть.

? Я пробовал приведенный выше код, и он работает нормально.

Надеюсь, это поможет вам ?.

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