2016-09-13 7 views
0

ページにリダイレクトしてエラーメッセージを表示するためのベストプラクティスに関する質問があります。たとえば、あるユーザーが新しいユーザーとして登録していて、選択したユーザー名が既に使用されています。私はそれらを登録ページ(基本的にはフォーム)にリダイレクトしたいが、エラーメッセージを表示する。ルーティングコードにクッキーを設定し、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; 
関連する問題