页面渲染

  1. res.render(tplName, ctx)

    传参方式2:res.locals

  2. 设置模板页layout

    如果不设置模板页,则默认使用layout.hbs

    如果要设置特定模板页,需设置layout上下文

  3. 中间件:对请求、响应对象进行预处理函数

    中间件函数签名:function(req,res,next){}

    执行完处理逻辑后,必须执行next(),否则处理中断了

    中间件是线性的,从上往下依次执行

    路由是特殊的中间件,前面设置地址,只有在遇到地址时才起作用

    注册中间件app.use([url],middleware)

  4. 路由传参

    方式1: 定义占位符 /:id 获取req.params.id

    方式2:查询参 获取req.query.xx

    方式3:请求体 获取 req.body

  5. 错误处理:

    常见方式1:next(new Error('错误信息'))

    常见方式2:重定向,res.redirect([statuscode], path) **path填写完整路由地址

  6. 模板引擎:Handlebars

    插值绑定 {{prop}}

    注释 {{! content}}

    HTML内容 {{{htmlStr}}}

    条件语句 {{#if condition}}...{{/if}}

    ** condition只能是布尔值或者可以转换为布尔值的值,他不能是表达式

    ** 可以结合{{else if condition}}、{{else}}使用

    循环语句 {{#each arr}}....{{/each}}

    ** each可嵌套

    ** 使用this或者.表示上下文,常用语数据是值的情况

    ** 使用@index,@key

    ** 遍历对象 @key

    ** 结合{{else}},当数组为空时显示特别信息

锲而舍之,朽木不折;锲而不舍,金石可镂。
原文地址:https://www.cnblogs.com/zhengyb/p/10007119.html