Handlebars的三重大括号是为了关闭HTML转义。
要注意handlebars使用if和each导致的上下文问题。
视图:
- 默认情况下,Express会在views子目录中寻找视图。
布局:
- 布局是一种特殊的视图,它是一个用于模板的模板。
默认情况下,Express会在views子目录中寻找视图。在views/layouts下查找布局。
局部文件
语法{{> partial_name}}
可以在视图中包含一个局部文件express3-handlebars
会在views/partials中寻找一个叫做partial_name.handle-bars
的视图。
向服务器端发送客户端数据
- 查询字符串 GET
- 请求正文 POST
浏览器一般会限制查询字符串的长度(对请求正文没有长度限制),所以一般使用POST进行表单提交。
处理表单的不同方式
- AJAX
- 浏览器提交,会重新加载页面
重新加载页面时,处理表单有两件事需要考虑:处理表单是哪个路径,以及向浏览器发出怎样的相应。
- 使用method="POST",展现表单和处理表单会采用相同的路径。
- 使用一个单独的路径来处理表单。
相应浏览器一般使用303重定向。无论之前是什么方法,都应该使用GET方法。
Cookie和会话
当服务器希望客户端保存一个cookie时,它会发送一个响应头Set-Cookie.
会话是更方便的状态维护方法。通常的做法是用一个包含唯一标识的cookie,然后服务器用这个标志获取相应的会话信息。
实现会话的方法:
- 把所有东西都存在cookie中
- 只在cookie中存一个标志,其他东西都存在服务器上。
中间件
从概念上讲,中间件是一种功能的封装方式,具体来说就是封装在程序中处理HTTP请求的功能。从实战上说,中间件是一个有三个参数的函数,一个请求对象,一个相应对象和一个next函数。
中间件是在管道中执行的。在Express程序中,通过调用app.use向管道中插入中间件。
网友评论