初步实现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 : 永久重定向 , 浏览器会记住

阅读更多
个人分类: 学习总结
想对作者说点什么? 我来说一句

Apache(文件上传下载)

2009年01月01日 128KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭