如何配置多路由指向同一HTML内容的hbs文件?
当然可以!
完全没问题,你只需要在路由配置里让两个路由都调用同一个res.render()方法,指定同一个hbs文件名就行。
以常用的Express框架为例,直接看代码示例:
const express = require('express'); const app = express(); app.set('view engine', 'hbs'); // /home 路由渲染指定hbs文件 app.get('/home', (req, res) => { res.render('index'); // 这里的index就是你的hbs文件名 }); // /main 路由复用同一个hbs文件 app.get('/main', (req, res) => { res.render('index'); }); app.listen(3000, () => { console.log('服务已启动在3000端口'); });
如果需要给模板传递相同的参数,还可以把渲染逻辑抽成独立函数,避免重复代码:
const renderCommonPage = (req, res) => { const pageData = { title: '首页', content: '欢迎访问' }; res.render('index', pageData); }; // 两个路由共用同一个渲染函数 app.get('/home', renderCommonPage); app.get('/main', renderCommonPage);
这样不管用户访问/home还是/main,都会加载同一个hbs文件,展示完全一致的内容。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

