[英]Pass a parameter from an ExpressJs request to another file in NodeJs
[英]How to pass data from one route to another nodejs with expressjs
我想向请求对象添加某个属性,并在重定向后从另一个路由访问添加的它。 以下代码显示了我真正需要的东西。
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 试过这个,但日志返回相同的“未定义”。 任何人都可以请帮忙。 提前致谢。
您可以使用第一个路由作为中间件来修改 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);
如果您希望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)
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.