Не можете выполнить запрос на получение с использованием express.js? - PullRequest
0 голосов
/ 29 октября 2018

Вот мой код сервера:

express
  .Router()
 .post('/authFB', async (req, res) => {
   // const agent = express();
    req.query = {
      client_id: 'ID',
      redirect_uri: `https://localhost:3000/`,
      client_secret: 'SECRET',
      code: Object.keys(req.body)[0]
    };

    req.baseUrl = `https://graph.facebook.com`

    const v = await req.get(`/v3.2/oauth/access_token`)
     v.body
  })

У меня проблема: 'v' всегда неопределено - я проверил запрос на Facebook через PostMan, и он работает - кажется, что мой запрос на получение никогда не выполняется.

1 Ответ

0 голосов
/ 19 ноября 2018

Я думаю, что так должно быть

const got = require('got'); // I am using got for api call
express
    .Router()
    .post('/authFB', async (req, res) => {
        // const agent = express();
        const query = {
          client_id: 'ID',
          redirect_uri: `https://localhost:3000/`,
          client_secret: 'SECRET',
          code: Object.keys(req.body)[0]
        };
        const baseUrl = `https://graph.facebook.com`

        const v = await got(`${baseUrl}/v3.2/oauth/access_token`, { query });
        console.log(v.body);
        res.send(v.body);
    });

Здесь данные выбираются с помощью функции «got», и ответ может быть отправлен обратно клиенту или использован любым доступным способом.

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

Кроме того, это требование типа express.Request. У него нет свойства get (). Проверьте это для справки.

Надеюсь, это достаточно хорошо объясняет ваш вопрос !!! ура :)

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