路由器重定向错误消息

时间:2016-09-13 16:55:44

标签: node.js express routes

我对重定向到页面并提供错误消息的最佳做法有疑问。例如,一个人正在注册为新用户,并且他们选择的用户名已在使用中。我想将它们重定向回寄存器页面(基本上是一个表单),但显示错误消息。我应该在路由代码中设置一个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');
    }
  });
});

1 个答案:

答案 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;