我对node.js和express.js格局很新。但是,我一直试图在express.js中创建一个网站(例如20多个页面)背后的代码,而代码变得非常大。
使用视图引擎时,路由会将传入请求指向索引或其请求的任何页面。运行默认快速生成器并将视图引擎设置为HBS后,您将获得类似
的内容 app.use('/', index);
这指向包含
之类的routes文件夹下的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文件。
我认为有一种更简洁的路由方式,或者我在想这个?
关于我的这个问题/问题的任何启示都会令人惊讶。
答案 0 :(得分:1)
这取决于您的路线有多相似:
这将为您提供如何执行每项操作的详细信息:
答案 1 :(得分:1)
在我的快递服务器中,我将路由分成不同的部分,称为" components"如果您正在进行服务器端呈现,或者它可以对应于一组API路由,则每个组件都可以对应一个给定页面。
每个组件都可以有控制器来处理每个路由,每个控制器都可以借用少量可重用的操作。
这是我所做的快速服务器组件的示例(此示例用于一组API路由,但相同的体系结构可用于hbs服务器端呈现路由集):
答案 2 :(得分:-1)
通常,您在关注的区域周围创建路由文件,尽管给定的路由器可以定义任何有意义的端点。例如,假设您的网站有几个相当静态的页面(例如您的“约”和“索引”示例,然后是几个基于博客条目(创建,列出,查看等)的页面,然后是几个用户(用户配置文件等)。您可能会为每组事物创建一个路由器,例如:
// ./routes/index.js
router.get('/', (req, res) => { res.render('index', {title: 'Express'}); });
router.get('/about', (req, res) => {res.render('about', {title: 'Express'});});
// etc
从概念上讲,您可以更简单地使用它来从URI中提取“索引”或“约”值,但我假设您将执行其他操作,例如分配变量等。
然后在另一个文件中
// ./routes/blog.js
router.get('/blog', (req, res) => {
// do whatever to fetch info fromt eh DB and render it...
});
等等。