Express,Mongodb搭建blog(2)

路由控制

    1.路由是把url和视图模板对应起来

    在浏览器中输入url链接,该显示什么视图就是由路由来控制的

    Express给出的方法是先在app.js文件中简单路由分配,再到相应的路由文件中处理请求

    这样便于日后维护代码

    2.Express封装了多种HTTP请求,主要使用get,post

    即app.get()和app.post()

    接受两个参数:请求路径和请求的回调函数    

    对于请求路径和请求参数的获取详见express官方文档

    req.query处理get请求,获取get请求参数

    req.body 处理post请求,获取post请求体

    req.params 处理/:xxx形式的get或post请求,获取请求参数

    req.param() 处理get,post请求,查找的优先级由高到低为: req.params->req.body->req.query

    举几个常用例子:

        1.GET   /aa?q=111

                 111  =  req.query.q

        2.POST  {"name":"h1"}

                h1 = req.body.name 


模板引擎(Template Engine)

    将页面模板和要显示的数据结合起来生成HTML页面的工具

    在app.js中设置了视图模板的存放位置和默认模板引擎

        app.set('views',path.join(__dirname,'views'));

        app.set('view engine','ejs');

    在路由控制方法res.render()中,接收两个参数

       1.第一个是模板名称

       2.第二个是传递给模板的数据对象

    注意:对于静态资源文件, 如:  /stylesheets/style.css,可以直接引入

    ejs标签

    <% code %> javascript代码

    <%=code %> 替换HTML内容

    <%-code %> 原始HTML内容

    即<%=code %>和<%-code %>的区别在于

    当code是<h1>hello world</h1>时    

    <%=code %>会原样输出code内容

    <%-code %>只会输出hello world

    页面布局

    ejs通过include引入ejs模板进行页面布局

    如:(a.ejs  ,  b.ejs)

    <%- include a %>

        hello  world

    <%- include b %>   

你可能感兴趣的:(node.js,路由,视图模板)