有没有一种简单的方法可以在 node.js/express 中使用 res.redirect 传递变量,而不必将其附加到 URL,或将其存储在 cookie 或 session 变量中?
我为什么要这样做?这是一个例子:
假设我在/users 有一个用户页面。我可以在/users/add 页面添加用户。我将表单发布在/users/add 上,如果它有错误,它会使用错误消息重新加载该表单,如果它成功通过,它会重定向回/users 页面。我想要的是能够知道我刚刚添加了一个用户并为其显示一条成功消息。
这是一个帖子的例子:
exports.usersAddPost = function(req, res, next) {
// validate form
if (!validated) {
// go back to form
return res.render('users/add', req.body.whatever);
} else {
// go back to users list
// need some way to tell users page that a user was just added
return res.redirect('users');
}
};
最佳答案
我实际上决定使用 session ,因为我找到了一种相当优雅的好方法。
在重定向之前,我像这样设置 session :
req.session['success'] = 'User added successfully';
res.redirect('users');
在用户页面上,我检查是否有一个成功变量并将其传递给我的模板(如果它存在),然后为了重置它我只是将它设置为 null。这非常适合我的需要。
关于javascript - 在 res.redirect 上传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24922466/