zoukankan      html  css  js  c++  java
  • node.js 基础学习笔记3 -express

     1、工作原理

      当通过app.js建立的服务器时,会看到一个简单的页面。返回页面时,浏览器会向服务器发送请求。app会解析请求的路径,调用相应的逻辑,调用对应的视图模板,传递对象数值,最终生成HTML页面,返回给浏览器。

      当浏览器接收到内容后,通过分析获取 /stylesheets/style.css,因此会再向服务器发起请求。

      此时,app并没有一个路由规则指派到/stylesheets/style.css,旦app会通过

        var path = require('path'),

      app.use(express.static(path.join(__dirname, 'public')))配置了静态文件服务器,定向到app.js所在的目录下去拿这个文件.

      如下图所示
                           浏览器
                            |
                            |
                          路由控制器
                            |
                            |
           ————————————————————————————————————————————————————————————
            |               |                  |
            |               |                  |
          模板引擎             静态文件              对象模板

     浏览器发送请求后,由路由控制接受,根据不同的路径定向到不同的服务器,控制器处理用户具体的请求,可能会访问数据库中的对象,
     即模型部分,生成视图HTML,再由控制器返回给浏览器,完成一次请求。  
     
    2.路由的规则创建     
      服务器在开始监听之前,设置好所有的路由规则,当请求到达时,直接分配到相应的函数。 
      早先版本在app.js直接使用 app.get('/user',function(req,res,next)){},  
       如今版本已改成  
    var users = require('./routes/users');
    app.use('/users', users);
    
    var express = require('express');
    var router = express.Router();
    
    /* GET users listing. */
    router.get('/:username', function (req, res, next) {
    });
    
    module.exports = router;
     app.get是路由规则创建函数,有两个参数
     参数一:请求的路径
     参数二:是一个回调函数,传递请求信息和相应信息,以及next。
    路径匹配的问题
     路径规则会被自动编译成正则表达式,路径参数可以相应的函数中通过req.params的属性访问。

    REST风格路由规则
      Express支持REST风格的请求方法,REST意思是表征状态转移,是一种基于HTTP协议的网络应用的接口
    风格。定义了8个标准方法。
      GET、POST、DELETE、PUT、HEAD、TRACE、CONNECT、OPTIONS。
      其中CONNECT是HTTP 1.1协议中预留给能够将连接改为管道方式的代理服务器。
      所谓安全指的是连续访问多次所获得的结果不收访问者的影响。
      而幂等 指的是重复请求多次与一次请求的效果是一样的,比如获取、更新、删除操作是 幂等,与新增不同。
     其中app.all 支持把所有的请求方法都绑定到同一个相应函数。

    控制转移
      Express支持同一路径绑定多个相应函数。
      使用next()函数,通过调用则将控制权交给后面的规则。
      
                
    
    
  • 相关阅读:
    鸡兔同笼问题多解
    JavaSE复习日记 : 循环语句(for/while/do while)
    JavaSE复习日记 : 八种基本数据类型
    递归函数
    JavaSE复习日记 : 条件判断语句
    访问权限系列一(public/private/protected/default):成员变量
    JavaSE复习日记 : 算是个小前言吧
    转:SQL Server 索引和视图
    转:SQL Server 数据库基础编程
    转:在网页html/aspx中增加一段播放器代码
  • 原文地址:https://www.cnblogs.com/xianrongbin/p/4793059.html
Copyright © 2011-2022 走看看