Как улучшить мои операторы if в маршруте [Node.js]

0
app.get('/dashboard/:page/:param',function(req, res) {
    var page = parseInt(req.param("page"));
    var param = req.param('param');

    data = {};
    data.page = page;

    if (!param) {
        data.nextPage = page + 1;
        data.prevPage = page - 1;

        MyModel.find().sort('brand').skip((page-1)*11).limit(11).exec(function(err, result) {
            res.render('index1', {
                data: data,
                result: result,
            });
        });
    } 
    else {
        data.nextPage = page + 1 + '/' + encodeURIComponent(param);
        data.prevPage = page - 1 + '/' + encodeURIComponent(param);

        MyModel.find({
               _id: param
            }).sort('brand').skip((page-1)*11).limit(11).exec(function(err, result) {
            res.render('index2', {
                data: data,
                result: result,
            });
        });
    }
});

У меня есть этот маршрут, и я использую для рендеринга две страницы.

Если на странице есть параметр, я хочу найти идентификатор в моей базе данных и отобразить index2, если не хочу просто визуализировать индекс.

Мой вопрос прост: это хороший способ решить эту проблему? Или я должен переместить другое на другой маршрут?

Могу ли я улучшить это, чтобы быть более сухим???

  • 1
    Я бы перенес else на другой маршрут. app.get('/dashboard/:page/:param и app.get('/dashboard/:page/
  • 0
    это лучшее решение?
Теги:
express

1 ответ

0
Лучший ответ

это выглядит более чистым для вас?

app.get('/dashboard/:page/:param', function (req, res) {
  var page = parseInt(req.param("page"));
  var param = req.param('param');

  data = {
    page: page,
    nextPage: page + 1 + param ? '/' + encodeURIComponent(param) : null,
    prevPage: page - 1 + param ? '/' + encodeURIComponent(param) : null
  };

  MyModel.find(param ? {_id: param} : undefined)
    .sort('brand')
    .skip((page - 1) * 11)
    .limit(11)
    .exec(function (err, result) {
      res.render(param ? 'index2' : 'index1', {
        data: data,
        result: result
      });
    });
});
  • 0
    работает .. но .. не могли бы вы переписать с помощью обычного JavaScript, чтобы помочь мне понять ??
  • 0
    Не могли бы вы объяснить, что вы подразумеваете под обычным JavaScript?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню