2016-09-13 5 views
0

У меня есть вопрос о передовом опыте перенаправления на страницу и подачи сообщения об ошибке. Например, человек регистрируется как новый пользователь, и имя пользователя, которое они выбрали, уже используется. Я хочу перенаправить их обратно на страницу регистрации (в основном в форме), но отобразите сообщение об ошибке. Должен ли я установить 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

Если вы уже используете сессии, вы можете использовать [ 'flash'] (https://github.com/ expressjs/flash) промежуточное ПО. – robertklep

ответ

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; 
Смежные вопросы