node.js - 如何使用 express 将请求响应从一条路由传递到另一条路由
问题描述
我有以下快速路线:
router.get(
"/auth/google/callback",
passport.authenticate("google", { failureRedirect: "/error", session: false }),
function(req, res) {
var token = req.user.token;
res.redirect("/getData?token=" + token);
}
);
router.get('/getData', function(req, res) {
var token = req.query.token;
console.log(token)
request('https://www.googleapis.com/analytics/v3/management/accounts?access_token=' + token,
function (error, response, body) {
let views = []
JSON.parse(body).items.forEach(view => {
views.push({
name: view.webPropertyId + ' - ' + view.name + ' (' + view.websiteUrl + ')'
})
})
res.redirect("/test?data="+ views);
});
})
router.get('/test', function(req, res) {
var testdata = req.user.data;
console.log(testdata)
res.send("ok")
})
我有两个控制台日志console.log(token)
和console.log(testdata)
. 第一个控制台日志正在工作,第二个没有返回任何东西。我尝试了很多方法将数据从请求传递到测试页面,但我无法做到。为什么?
解决方案
看起来您正在尝试通过查询参数传递数据,然后尝试通过req.user
. 在我看来,这只是一个语法错误。更改req.user.data
为req.query.data
。
推荐阅读
- spring - 在 BindingProvider 中调用 HTTPS URL
- flutter - 如何将 MVVM Flutter Provider 与 GraphQL 一起使用?
- sql - 根据表 B 标准从表 A 中获取值,即使它在表 B 中不存在
- sql - 如何将默认值添加到 json_build_object postgresql
- python - 如何在 Python Pandas 中将单元格与来自不同数据帧的列表数据类型合并?
- python - 如何在 Pyspark 中使用 Spacy?
- amazon-web-services - Gitlab CI/CD 管道在有自定义运行器可用且 gitlab-ci.yml 存在时不会退出
- c++ - 在函数中动态分配数组
- opencv - 为语义分割创建索引像素
- firefox - 如何从 Android 上的 Firefox 访问路由器的 IP 地址?