【发布时间】:2011-08-18 16:52:19
【问题描述】:
假设用户得到一个页面/form/
GET /form/
然后他填写表格并发送帖子请求
POST /form/
服务器尝试验证用户输入并确定输入无效。
目前用户的历史链是
GET /form/POST /form/
现在服务器将用户重定向到GET /form/ 页面,以便它可以再次填写表单(带有错误消息)。
他的历史看起来像
-
GET /form/已填写表单字段 -
GET /form/未在表单字段中填写
如何在不丢失用户在第一个表单中输入的详细信息的情况下将用户送回?
有哪些技术可以将用户重定向回他们的GET /form/ 页面,而不是强迫他们重新输入信息。
以下是本示例的 express (node.js) 特定服务器端代码。
验证中间件:
validate().on("error", function _error(msg) {
// store error message on request object
req.flash(msg, validateUserMessage[msg]);
}).on("valid", function _valid() {
// handle the rest of /POST/
next();
}).on("invalid", function _invalid() {
// redirect user back to last page, the /GET/ form
res.redirect("back");
}).run(function _validateUsers(check, sanitize) {
// validation logic.
});
路由:
// GET /form/
app.get("/form", function _signUpView(req, res) {
// render /form/
res.render("auth/signup", req.flash());
});
// POST /form/
// validation middleware used here.
app.post("/form", secure.validateUser, function _signUpCreate(req, res) {
model.create(req.body, function _create() {
// create thing in database
});
});
【问题讨论】:
标签: javascript http node.js