当前位置: 首页 > 后端技术 > Node.js

页面渲染方式及传参方式-Node实战

时间:2023-04-04 00:26:29 Node.js

动态页面的开发基本都会涉及到一个比较关键的问题,那就是传参。后台向前台传递不同的参数,前台页面根据不同的参数显示不同的页面效果,这就是渲染。不同的后台开发环境有不同的渲染方式。在Node开发过程中,传递参数的方式非常简单直观。直接渲染模板即可,代码如下:res.render('error',{message:err.message,error:err});呈现页面模板错误,并向其传递2个参数。这样首页模板就可以使用这两个参数了。错误页面代码如下:

<%=message%>

<%=error.status%>

<%=error.stack%>
当然页面不仅可以使用render方法传递的参数,如果使用express框架,还可以通过给app.locals和res赋值的方式,将其他参数传递给页面模板引擎.locals对象。例如:router.use(function(req,res,next){res.locals.period=moment().day(5).format('YYYYMMDD');//获取本周五的日期res.locals.prePeriod=moment().day(5-7).format('YYYYMMDD');//获取上周五的日期});这种路由方法会将period和prePeriod变量传递给模板引擎上路由下的所有路径。这两个变量在该路由下的所有页面模板上都可用。然而,还有另一种情况。页面跳转时,应该传递哪些参数?页面重定向,例如:res.redirect('/login'),该语句将请求重定向到另一个路径;或者,res.redirect('back')返回到上一页。页面跳转相当于重新访问目标路径的路由。在这种情况下,我们想传递参数,这似乎无法通过重定向方法实现。有些人可能会想到使用会话对象作为传递参数的中介。显示参数后,会话将被自动删除。是的,这就是connect-flash模板实现的功能。详见:Express框架connect-flash详解-山上有鱼-博客频道-CSDN.NET。connect-flash使用详解-云酷网的原理和使用方法已经有了,不再赘述。我的使用场景一般是在进入一个没有权限访问的页面时,跳转到登录界面show的提示信息。很多场景其实是可以用前端Ajax代替的,比如:登录界面的验证等等。综上所述,在NodeWeb开发中,后台渲染页面的传参方式有3种:普通页面渲染使用res.render()方法;不要忘记express提供的app.locals和res.locals对象;你可以尝试使用connect-flash模块;更多信息,请访问:LP的博客