node——路由控制

来源:互联网 发布:淘宝买的黄金是真的吗 编辑:程序博客网 时间:2024/05/05 20:52

路由控制

前面我接触了如何使用express建立一个工程,虽然这个工程包含了一些基本的框架,但是没有实际内容,我们会不断给他增加的。

  • 工作原理
    我们在浏览器中访问app.js建立的服务器时,会出现一个简单的页面,实际上他已经完成了许多透明的工作。
    • 当我们在访问http://localhost:3000时,浏览器会向服务器发送请求。app文件会解析请求的路径,调用相应的逻辑。文件中的app.get(‘/’, routes.index),的作用是规定路径为“/”的GET请求由routes.index函数处理。routes.index通过res.render(‘index’, {title: ‘Express’})调用视图模板index,传递title变量,最终视图模板生成html页面,返回给浏览器。
    • 浏览器在接到内容后,经过分析发现需要获取css,于是再次发送请求,然后app通过app.use(express.static(__dirname + ‘/public’))配置了静态文件服务器,所以他会定向到app中相应的css返回给客户端。
    • 然后就形成了一个MVC架构,浏览器发送请求、由路由控制接受,根据不同的路径然后定向到不同的控制器。控制器处理用户的请求,可能会访问数据库,即模型部分。控制器还要访问模板引擎,生成视图的html,最后由控制器返回给客户端,完成一次请求。
  • 创建路由规则
    在app里面增加get函数,然后再在routes里面添加一个你想实现的模块(一个js文件),在app里面获取到她的函数对象。再次重启服务器即可访问http://localhost:3000,看到相应的效果。
  • 路径匹配
    如果你要展示一个页面,路径为/user/[username],就可以像下面这样配置路由:

        app.get('/user/:username' ,function(req, res){        res.send('user:' + req.params.username);    });
  • 控制权转移
    Express支持同一个路径绑定多个路由响应函数。
    Express是通过函数next()实现路由控制转让的,这样提高了代码的重用程度,通过调用第三个参数next函数,将路由的控制权转让给后面的规则。
0 0
原创粉丝点击