Можно ли отображать мобильное представление в экспрессе?

С точки зрения прогрессивного улучшения, я просто думал о различных способах улучшения веб-приложения, чтобы мобильный пользователь получал представление с сервера, а не с настольным пользователем.

Одна вещь, о которой я думал, это визуализация мобильного представления. Основной код узла будет...

router.get("/components", function(req, res) {
  var mobile = isMobile(req.headers["user-agent"]);

  res.render("components" + (mobile ? "-mobile" : "");
});

Таким образом, я мог бы сделать более дружественный для мобильных устройств вид, использующий меньше JavaScript, и создать более полный и богатый SPA на рабочем столе.

Хотите знать, если и почему это может или не может быть плохой идеей и любые альтернативы, которые вы можете иметь.

Спасибо!

1 ответ

Рендеринг разного контента для одного и того же URL на основе произвольных условий (устройство, язык и т. Д.) - это большая проблема.

Что вы можете сделать, это установить промежуточное ПО, которое проверяет, пришел ли пользователь с мобильного устройства и перенаправляет ли оно соответствующим образом.

isMobile.js

module.export = function(req, res, next) {
  if (isMobile(req.headers["user-agent"])) {
    res.redirect('//m.' + req.hostname + req.path);
  } else {
    next()
  }
}

route.js

require('./isMobile');

router.get("/components", isMobile, function(req, res) {
  res.render("components");
});

В качестве альтернативы вы можете использовать промежуточное программное обеспечение, чтобы оно применялось ко всем вашим маршрутам.

app.js

require('./isMobile');

app.use(isMobile)
// Load routes here
Другие вопросы по тегам