Можно ли отображать мобильное представление в экспрессе?
С точки зрения прогрессивного улучшения, я просто думал о различных способах улучшения веб-приложения, чтобы мобильный пользователь получал представление с сервера, а не с настольным пользователем.
Одна вещь, о которой я думал, это визуализация мобильного представления. Основной код узла будет...
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