【发布时间】:2018-06-14 16:15:57
【问题描述】:
我对 node.js 和 express.js 领域还很陌生。但是,我一直在尝试在 express.js 中创建网站(例如 20 多页)背后的代码,而代码不会变得非常大。
当使用视图引擎时,路由会将传入请求指向索引或他们请求的任何页面。在将视图引擎设置为 HBS 的情况下运行默认的 express-generator 后,您会得到类似
app.use('/', index);
这指向路由文件夹下的 index.js 文件,其中包含类似的内容
router.get('/', function(req, res, next){
res.render('index', {title: 'Express'});
});
然后渲染 index.hbs 文件以在页面上显示我想要的内容。
我的问题是这个。您是否必须为您想要的每个页面设置一个路由,例如个人资料页面、登录页面、关于页面等?如果是这样,如果您有 20 多条路线,这不会在路线中创建很多代码行吗?示例将在 app.js 中
app.use('a', a);
app.use('b', b);
...
app.use('z', z);
那么每个都需要一个对应的路由js文件。
我认为有一种更简洁的路由方式,还是我想多了?
任何关于我的这个担忧/问题的观点都会令人惊叹。
【问题讨论】:
-
你不能把所有的路由都放在一个 route.js 文件里吗?
-
理论上你可以将它们组合在一起,也许这会减少所需的 app.use 语句。我不知道 express.js 中路由的标准是什么,但这仍然需要您在路由 js 文件中指定每个路由。
-
路径支持参数,一个基本的例子是
app.get('/:page/', ...)。您可以使用req.params.page引用该参数。这样您就不必明确说明每条路线。
标签: javascript node.js express express-router