Сервер Express.js: запрос PUT с использованием промежуточного программного обеспечения - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть работающий сервер Node / Express, и я использую его для выполнения запросов через localhost к внешнему API. Как вы можете видеть в моем примере кода, я использую node-fetch для своих основных запросов GET.

Для каждого запроса я заранее готовлю const url = BASE_URL, необходимый для фактического запроса внешнего сервера.

Но я застреваю на своем PUT-Request, так как не могу использовать node-fetch. Итак, что мне нужно сделать, чтобы уведомить мой сервер Express с действительным URL-адресом для PUT-запроса?

PUT-запрос здесь не работает.

/* Route: Get Appointment it's availability times */
app.get('/availability/times/:id/:date/:locationId', (req, res) => {
  var id = req.params.id;
  var date = req.params.date;
  var locationId = req.params.locationId;
  const url = BASE_URL + '/availability/times?appointmentTypeID=' + id + '&date=' + date + '&calendarID=' + locationId;;
  fetch(url, {
      mode: "no-cors",
      method: "GET",
      headers: {
        'Content-Type': 'application/json',
        'X-Requested-With': 'content-type'
      },
    })
    .then(response => response.json())
    .then(json => {
      res.json(json);
    });
});

app.put('/appointments/:id/cancel', (req, res) => {
  var id = req.params.id;
  const url = BASE_URL + '/appointments/' + id + '/cancel';
  res.send(req.body)
});

1 Ответ

0 голосов
/ 11 сентября 2018

Если вы говорите, что fetch не определено в вашем запросе пут, убедитесь, что вы запрашиваете его наверху перед любыми маршрутами var fetch = require('node-fetch'). Для вашего базового URL вы должны сохранить его в файле конфигурации. Создайте файл с именем config.js, который будет выглядеть примерно так:

module.exports = {
  'BASE_URL': 'yoururlhere'
}

затем укажите это на вашем экспресс-сервере var config = require('pathToConfig');, и вы можете использовать его, указав config.BASE_URL

Если это не поможет, пожалуйста, уточните, в чем ваша проблема

...