Обработка ввода формы в nodejs - PullRequest
0 голосов
/ 26 марта 2019

Я бы хотел, чтобы пользователь отправил URL-адрес в качестве ввода формы (например, "http://api.open -notify.org / astros.json ") и прочитал содержимое отправленного URL-адреса.

Я не уверен, что мой текущий подход правильный. Что я должен поставить в поле URL ниже?

var options = {
    url: '....',
    method: 'GET',
    headers: {'Content-Type' : 'application/x-www-form-urlencoded' }
}

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Вы могли бы сделать что-то вроде этого (я думаю, это то, что вы хотите):

Я предлагаю использовать request-promise пакет

const rp = require('request-promise');
// post router
app.post('/readUrl', async (req, res) => {
  const uri = req.body.url // http://api.open-notify.org/astros.json

  const options = {
    uri,
    headers: {
      // maybe set some headers to accept other formats of response
    },
    // Automatically parses the JSON string in the response
    json: true
  };

  const data = await rp(options);
  // data is json
  res.json(data);
})
0 голосов
/ 26 марта 2019

Кажется, у вас уже есть загруженная логика Express.IMO, если у вас уже работает экспресс, создайте маршрут публикации, по которому пользователь может перейти:

app.post("/form",(req,res)=>{
    //See the request body here.
    console.log(req.body)
);

Затем вы сделаете вызов AJAX с указанным выше URL-адресом.Стоит отметить, что вам понадобится анализатор тела в вашем файле server.js.

const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

Плагин позволяет упростить синтаксический анализ на стороне сервера от клиента.

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