2

次のように簡単に、Node アプリに小さな認証ルートを実装しています。

 app.get('/admin', function(req, res) {
    res.render('login', { error: false });
  });
  app.post('/admin', function(req, res) {    
    if((adminAccount.username === req.body.username) && 
      (adminAccount.password === req.body.password)) {

      res.redirect('/admin/books');
    }
    else {
      res.redirect('/admin', { error: true });
    }
  });

適切な資格情報でログインすると問題なく動作しますが、失敗した場合は、/adminリダイレクトによって GET リクエストを行う必要があります。しかし、私は得る:undefined. Redirecting to //127.0.0.1:3000/admin

それは、私が要求をしres.redirectていることに変わります。POST/adminGET

私に何ができる?res.redirect正しい方法でリダイレクトするように指定するにはどうすればよいですか?

4

2 に答える 2

2

私には問題ないようです。エラーを除外するためにこれだけを試していただけますか: false が問題です:

res.redirect('/admin');

メッセージをフラッシュしたい場合は、connect-flash を使用します。

app.js:

var flash = require('connect-flash');
app.use(flash());

ルート:

req.flash('error', 'Woops, looks like that username and password are incorrect.');
res.redirect('/login');

ミドルウェア:

res.locals.message = req.flash();

見る:

  <% if ( message.error ) { %>
    <div class="message error"><%= message.error %></div>
  <% } %>
于 2012-11-06T23:50:18.320 に答える