使用Express时在EJS视图中查找当前URL

使用Express时在EJS视图中查找当前URL,第1张

使用Express时在EJS视图中查找当前URL

在我使用的几乎所有节点/表达模板语言中(ejs,kiwi,swig和jade),答案是否定的。我一直只是设置一个名为“
active”的变量,然后进行检查。正如您所说,这不是一个很好的答案,尽管我不知道可伸缩性是问题所在。如果每个url都呈现其自己的视图(或者即使您具有用于视图呈现的通用处理程序),则说起来也不难

req.active= "Somepage"
。另一种可能性是添加基于路由为您执行此 *** 作的中间件。就像是

app.use(function(req, res, next){    req.active = req.path.split('/')[1] // [0] will be empty since routes start with '/'    next();});

然后,只需确保具有相应导航组件的任何路由都使用唯一路径,例如

app.get('/students', ....)app.get('/classes', ....)app.get('/teachers', ....)// etc.

编辑:为了回应您的评论,我总是将所有视图内容都放入一个对象密钥

req
,通常我会使用我使用的任何模板程序来命名该密钥。所以我实际上可能会使用上面的示例进行设置
req.ejs.active
,然后执行

res.render('myview', req.ejs);

这种方法使将逻辑分离为多个中间件功能变得更加容易,而不必将巨大的匿名对象传递给res.render。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5016197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存