我想向请求对象添加某个属性,并在重定向后从另一条路由访问添加的属性。 以下代码显示了我真正需要的。
const express = require('express')
const app = express()
app.get('/test1',(req,res)=>{
console.log('test1')
req.name = 'lahiru'
res.redirect('/test2')
})
app.get('/test2',(req,res)=>{
console.log('test2')
let val = req.name
console.log(val)
})
app.listen(3000)
但是当我向'/ test1'发送请求时,我得到以下输出。
test1
test2
undefined
我在express-session中尝试过此操作,但log-返回相同的“ undefined”。 谁能帮忙。 提前致谢。
答案 0 :(得分:0)
如果您想在name
中使用/test2
,请执行以下操作之一:
/test2?name={name}
/test2/:name
app.get('/test1',(req,res)=>{
const name = 'lahiru'
res.redirect(`/test2/${name}`)
// res.redirect(`/test2/?name=${name}`)
})
// using req.params
app.get('/test2/:name',(req,res)=>{
let val = req.params.name
console.log(val)
})
// using query string
app.get('/test2',(req,res)=>{
let val = req.query.name
console.log(val)
})
答案 1 :(得分:0)
您可以将第一个路径用作中间件来修改req参数。
const express = require("express");
const app = express();
const middleware = (req, res, next) => {
console.log("test1");
req.name = "lahiru";
next();
};
app.get("/test2", middleware, (req, res) => {
console.log("test2");
let val = req.name;
console.log(val);
});
app.listen(3000);