Изучение пересылки выписок из шкафчика

У меня есть обучающий шкафчик, работающий локально на моем компьютере, и я хотел бы показать утверждения на внешнем веб-сайте, это легко с панелями мониторинга, поскольку есть возможность иметь ссылку, которую можно поместить в iframe, но когда я делаю то же самое с частью утверждений, в нем говорится, что ip (обучающий шкафчик) заблокировал доступ, поэтому я попытался с перенаправлением оператора на сервер node.js, созданный как:

const http = require('http');
const { parse } = require('querystring');
const server = http.createServer((req, res) => {
    if (req.method === 'POST') 
    {
        
        console.log(req);  
    } 
});
server.listen(8090);

Но когда я смотрю на req (Incomming Message), и оно кажется пустым, у меня есть несколько полей в качестве заголовков:

headers:
   { accept: 'application/json, text/plain, */*',
     'content-type': 'application/json',
     'x-experience-api-version': '1.0.0',
     'user-agent': 'axios/0.18.1',
     'content-length': '532',
     host: 'IP_ADDRESS:8090',
     connection: 'close' },
  rawHeaders:
   [ 'Accept',
     'application/json, text/plain, */*',
     'Content-Type',
     'application/json',
     'X-Experience-API-Version',
     '1.0.0',
     'User-Agent',
     'axios/0.18.1',
     'Content-Length',
     '532',
     'Host',
     'IP_ADDRESS:8090',
     'Connection',
     'close' ],

Но тела и ничего не связанного с заявлением нет.

1 ответ

По умолчанию сервер nodejs не анализирует тело POST. Вы можете попробовать использовать https://www.npmjs.com/package/body-parser промежуточное ПО с платформой express.js

var express = require('express')
var bodyParser = require('body-parser')
 
var app = express()
 
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
 
// parse application/json
app.use(bodyParser.json())
 
app.use(bodyParser.urlencoded({ extended: false }))

app.use(function (req, res) {
  res.setHeader('Content-Type', 'text/plain')
  res.write('you posted:\n')
  res.end(JSON.stringify(req.body, null, 2))
})

app.listen(8090, function(error){ 
  if(error) {
    throw error
  }
})

Другие вопросы по тегам