express get route:如何实现DRY
我有下面类似的代码来获取进程路径
router.get( "/todoHome", ( req, res ) => {
res.render( "todoHome",
{ title: 'My Todo List!!' } );
} );
router.get( "/articles", ( req, res ) => {
res.render( "articles",
{ title: 'Articles To Read' } );
} );
router.get( ["/", "/index"] ( req, res ) => {
res.render( "index",
{ title: 'Homepage' } );
} );
router.get( "/primary" ( req, res ) => {
res.render( "primaryurls",
{ title: 'Primary DC URLs' } );
} );
router.get( "/standby" ( req, res ) => {
res.render( "standbyurls",
{ title: 'Standby DC URLs' } );
} );
我觉得我可能会再添加一些类似的条目我可以在这里实现DRY吗?
谢谢。
回答如下:您可以创建一个辅助函数,该函数将帮助您呈现模板。
类似:
function renderPage(resObject, template, title = '', data = {}) {
resObject.render(template, {
title,
...data,
});
}
然后,使用路由器功能中的功能:
router.get("/todoHome", (req, res) => {
return renderPage(res, 'todoHome', 'My Todo List!!')
});