Node.js express отправлять необработанные HTTP-ответы - PullRequest
1 голос
/ 18 июня 2020

У меня есть устаревшая система, которая может возвращать необработанные \ простые HTTP-ответы в виде строки (текст, содержащий все необходимые заголовки + тело).

Я хотел бы отправить этот текст напрямую без каких-либо модификаций синтаксического анализа для причины производительности.

Итак, цель состоит в том, чтобы прокси получил необработанный HTTP-ответ.

const express = require('express');
const app = express();
const router = app.Router();

        router.get('request',()=>{
           const plainTextWithHeadersFromExternalSystem = `HTTP/1.1 200 OK
                                   Date: Sun, 10 Oct 2010 23:26:07 GMT
                                   Server: Apache/2.2.8 (Ubuntu) mod_ssl/2.2.8 
                                   OpenSSL/0.9.8g
                                   Last-Modified: Sun, 26 Sep 2010 22:04:35 GMT
                                   ETag: "45b6-834-49130cc1182c0"
                                   Accept-Ranges: bytes
                                   Content-Length: 12
                                   Connection: close
                                   Content-Type: text/html

                                   Hello world!`;
           ... TODO: send text with headers and body as a response.
        });

Это может быть любой тип содержимого, а не только простой текст.

Есть идеи, можно ли просто проксировать его с помощью Node.js express lib?

Ответы [ 2 ]

1 голос
/ 18 июня 2020

вы можете использовать следующее для установки заголовков

res.set({
  'Content-Type': 'text/plain',
  'Content-Length': '123',
  // extra headers here
})

или вы используете
res.header(field, [value])

полный код может быть таким

router.get('request', (req, res) => {
   res.set({
      'Content-Type': 'text/plain',
      'Content-Length': '123',
      // extra headers here
   });
   res.send('Hello world!');
});
1 голос
/ 18 июня 2020

Я думаю, если вы установите введите в text/plain и поместите строку в send , вы сможете получить именно то, что вам нужно

router.get('request', (req, res) => {
  res.type('text/plain');
  res.send('text');
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...