从渐进增强的角度来看,我只是想通过不同的方式来增强网络应用,以便移动用户获得服务器呈现的视图,而不是桌面用户。
我正在考虑的一件事是呈现移动视图。基本节点代码是......
router.get("/components", function(req, res) {
var mobile = isMobile(req.headers["user-agent"]);
res.render("components" + (mobile ? "-mobile" : "");
});
通过这种方式,我可以呈现更加移动友好的视图,使用更少的JavaScript,并在桌面上呈现更丰富,更丰富的SPA。
想知道,是否以及为什么这可能或可能不是一个坏主意和任何替代方案。
谢谢!
答案 0 :(得分:0)
根据任意条件(设备,语言等)为同一网址呈现不同的内容是一个很大的禁忌。
您可以做的是设置中间件,验证用户是否来自移动设备并进行相应的重定向。
<强> 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