无法使用express.js满足获取请求?

时间:2018-10-29 15:30:33

标签: javascript typescript express get

这是我的服务器代码:

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'始终是不确定的-我已经通过PostMan测试了Facebook请求,并且该请求正在运行-似乎我的get请求从未得到满足。

1 个答案:

答案 0 :(得分:0)

我认为应该更像这样

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);
    });

这里的数据是通过“获取”获取的,响应可以发送回客户端或以任何可能的方式使用。

您在此处执行的操作将是反模式,因为您尝试编辑快速请求对象,除非用于身份验证和应用程序级别所需的其他操作,否则不建议这样做。

此外,该请求是express.Request类型。它没有get()属性。选中this供参考。

希望这可以很好地说明您的问题!!! 欢呼:)