在Express中,可以通过将数据/变量存储在session或者使用中间件来在POST路由和GET路由之间传递数据。
一种方法是使用session来存储数据/变量。首先,需要安装并引入express-session中间件。然后,在POST路由中,可以将数据/变量存储在session中,例如:
const express = require('express');
const session = require('express-session');
const app = express();
// 使用session中间件
app.use(session({
secret: 'secret-key',
resave: false,
saveUninitialized: true
}));
app.post('/post-route', (req, res) => {
// 存储数据/变量在session中
req.session.myData = 'Hello, World!';
res.redirect('/get-route');
});
app.get('/get-route', (req, res) => {
// 从session中获取数据/变量
const myData = req.session.myData;
res.send(myData);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
另一种方法是使用中间件来传递数据/变量。可以创建一个中间件函数,在POST路由中调用该函数并将数据/变量作为参数传递,然后在GET路由中通过中间件函数获取数据/变量。例如:
const express = require('express');
const app = express();
// 中间件函数
const myMiddleware = (req, res, next) => {
// 从请求中获取数据/变量
const myData = req.body.myData;
// 将数据/变量存储在请求对象中
req.myData = myData;
next();
};
app.use(express.urlencoded({ extended: true }));
app.post('/post-route', myMiddleware, (req, res) => {
res.redirect('/get-route');
});
app.get('/get-route', (req, res) => {
// 从请求对象中获取数据/变量
const myData = req.myData;
res.send(myData);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
以上是在Express中将数据/变量从POST路由传递到GET路由的两种常见方法。根据具体的需求和场景,选择适合的方法来传递数据/变量。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云