初步实现APACHE功能----art-template----服务器处理表单提交

模板引擎:art-template

安装:

使用npm安装,切换到要安装的目录下,语法:npm install art-tempalte 就可以安装了

使用:

1.先安装art-template

2.引用lib\template-web文件

3.插入一个type类型非js的要输出在html界面上的文件,同时给上id

4.根据所给的id,引用模板方法给变量赋值,并且返回对象

语法:

输出:

{{value}}

{{data.key}}

{{data[‘key’]}}

{{a?b:c}}

{{a+b}}

模板一级特殊变量可以使用$data加下标的方式访问:

{{$data[‘user list’]}}

原文输出:不会对html内容进行转义处理

{{@value}}

条件

{{if value}}{{/if}}

{{if v1}}….{{else if v2}}…..{{/if}}

循环

{{each target}}

{{$index}}{{$value}}

{{/each}}

变量

{{set temp = data.sub.content}}

模板继承

{{extend ‘./layout.atr’}}

{{block}}

其他:https://aui.github.io/art-template/zh-cn/docs/syntax.html

客户端渲染和服务端渲染

次数

服务端:只请求了一次

客户端:请求了两次

爬虫

客户端渲染,不利于搜索引擎优化(seo),很难被爬虫抓取到

服务端渲染,是可以被爬虫抓取到的

真正的网站,既不是纯异步,也不是纯服务端渲染出来的

留言本案例

把当前文件所有的 依赖项 都声明在 文件模块 的最前面

当浏览器收到html响应的时候,会从上到下的进行执行

在解析过程中,如果发现:

img

audio

vidio

link

script

frame

等带有src和link的属性的时候,浏览器会自动对这些资源发送请求

我们为了统一处理这些静态资源,我们约定把所有的静态资源都存放在public目录中

哪些资源能被用户访问,哪些资源不能被用户访问,我们可以非常灵活的通过代码控制,但是apache很难做到

服务端处理表单提交

var url = require('url')

var parseObj = url.parse(url,true)// parse方法将url解析成为一个方便操作的对象,第二个参数为true时,直接将查询字符串转化为可以查询的对象

var pathname = parseObj.pathname //单独获取,url中不包括查询字符串的路径部分(?后面的内容)

JSON.stringIfy(parseObj.query) //把查询字符串拆分成一个对象

重定向

1.状态码 302 临时重定向 ,浏览器不记住

2.响应头中 通过 location 告诉客户端 往哪儿重定向

客户端只要收到的服务端响应的状态码是302,就会自动去响应头中去找location,然后对该地址发起新的请求

res.statusCode = 302;
res.setHeader('location','/')
res.end()

301 : 永久重定向 , 浏览器会记住

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值