javascript - 无法使用 express.js 完成获取请求?
问题描述
这是我的服务器代码:
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 请求从未得到满足。
解决方案
我认为应该更像这样
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”获取,并且可以将响应发送回客户端或以任何可能的方式使用它。
您在这里所做的将是一个反模式,因为您正在尝试编辑不推荐的快速请求对象,除非用于身份验证和应用程序级别所需的其他操作。
此外,该 req 是 express.Request 类型。它没有 get() 属性。检查此供您参考。
希望这能很好地解释你的问题!!!干杯:)
推荐阅读
- python - Airflow xcom_pull 不提供相同上游任务实例运行的数据,而是提供最新数据
- php - PHP 表单操作不起作用且未更新查询字符串
- python - 无法识别的令牌:“772762303ORDER”
- python - 有登录部分循环吗?
- c# - 有没有办法在另一个类中创建事件处理程序代码并调用它
- angular - 如何找出组件或服务所依赖的模块?
- c# - HttpClient 实例的基地址应该是什么?
- acumatica - 客户位置的构建处理屏幕
- powerbi - 使用 DAX 将自定义(手动输入)列合并到新表中
- java - 如何将字符串值从一个 void 方法传递到另一个 void 方法