我对重定向到页面并提供错误消息的最佳做法有疑问。例如,一个人正在注册为新用户,并且他们选择的用户名已在使用中。我想将它们重定向回寄存器页面(基本上是一个表单),但显示错误消息。我应该在路由代码中设置一个cookie并让javascript显示错误,还是有最好的做法?
router.post('/register', function(req, res) {
var username = req.body.username;
db.fetchUser(username, function(err, user){
if (!err && !user) {
db.addUser(req.body.username, req.body.password, "vendor", function(err) {
if (!err) {
res.redirect('/portal');
}
else {
// TODO: Set error.
res.redirect('/register');
}
}
}
else {
// return error already exists.
res.redirect('/register');
}
});
});
答案 0 :(得分:0)
我使用快速会话,这似乎是一种干净的方式。
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var routes = require('./routes/index');
var portal = require('./routes/portal');
var FileStore = require('session-file-store')(session);
var app = express();
app.use(session({
secret: "flibbernachosqueezance",
store: new FileStore,
saveUninitialized: true,
resave: true
}));
然后对会话变量使用这样的东西:
req.session.userMessage = "This username already exists: "+username;