码迷,mamicode.com
首页 > Web开发 > 详细

Node.js_express_中间件 middleware_登录/注册实例

时间:2018-12-21 18:06:47      阅读:388      评论:0      收藏:0      [点我收藏+]

标签:war   规范   app   遍历   sans   can   ***   方法   避免   

静态资源:

都写死了的资源,如 css,html

 

解析规则:

所有路由中间件都在一个数组中,js 引擎会按照代码先后顺序添加路由中间件

当请求发送到服务器时,服务器获取当前的请求信息(请求方式、请求路由路径)

遍历数组,找到第一个匹配请求路由路径请求方式必须完全一致)到的路由或者中间件,执行其回调函数

意味着: 声明多个同名路由时,始终解析第一个

如果没找到,返回一个状态码为 404 的响应, Cannot GET / xxx    或者  Cannot POST / xxx

 

中间件 middleware

当有多个路由做同一件事情,这时就会交给中间件去完成

本质上就是一个函数 (request, response, next)=>{}

express 框架 实现服务器    完全是由 路由 和 中间件 组成的

需要调用 next() 方法,才会接下来处理下面的中间件或者路由,否则卡住了

  • app.use(express.static(‘./public‘));    //默认调用next

接受请求,通过分析参数,找到了 public 对应资源就返回响应

将该文件夹下所有静态资源暴露出去

例如: 文件夹有 

public/index.html

public/css/index.css

就可在浏览器访问

127.0.0.1:3000/index.html

127.0.0.1:3000/css/index.css

  • app.use(express.urlencoded({extended: true}));    //默认调用next

解析 请求体 数据,结果数据挂载到 req.body 上

  • 实例分析: 
  • // 1. 导入 express 模块
    const express =  require(‘express‘);
    
    // 2. 创建 app 应用对象
    const app = express();
    
    // 3. 写业务逻辑:处理请求,返回响应
    
              /**** 配置内置 中间件 (express 自带) ****/
        // 将该文件夹下所有静态资源暴露出去
    // 接受请求,通过分析参数,找到了
    public 对应资源就返回响应 app.use(express.static(‘./public‘)); // public 下有 index.html css/index.css // 可在127.0.0.1:3000/index.html css/index.css // 解析请求体数据,结果数据挂载到 req.body 上 app.use(express.urlencoded());
    // 默认调用 next() /**** 以上两个一般结合使用 ****/

    // 中间件默认能接收并处理所有请求
    // 需要调用 next() 方法,才会接下来处理下面的中间件或者路由,否则卡住了
    app.use((request, response, next)=>{
    next(); // 调用下一个中间件或者路由
    });
    /**************************************/
    // route 路由的组成: app.请求方式(‘/路由路径‘, 句柄函数); app.get(‘/login‘, (request, response)=>{ console.log(request.body); response.send(‘Login Page Response!‘); }); app.post(‘/register‘, (request, response)=>{ console.log(request.query); response.send(‘Register Page Response!‘); }); // 4. 监听端口号:一个端口号 有且只能运行 一个程序 app.listen(3000, err=>console.log(err?err:‘服务器启动成功 : http://127.0.0.1:3000‘));

 

登录/注册实例

  • 什么时候用 get ,什么时候用 post?

1. 凡是涉及到用户的隐私数据,就用 post

2. 其他就用 get

  • 业务逻辑

1. 导入 exoress 框架

2. 注册路由

由于默认访问不到静态资源,所以1引入中间件,暴露静态资源

默认不能解析 请求体 ,则2引入中间件,解析 请求体 数据(优先级低于上一中间件,避免多余分析)

获取用户提交的表单数据        req.body

对数据库进行正则验证(验证数据的规范)    

检查用户名是否存在

连接数据库

User.findOne();

保存在数据库中        

User.create();

无论 失败/成功 都要返回

3. 登录路由

4. 设置端口号,启动服务器监听

  • 项目目录

/public/register.html

/public/login.html

app.js

Node.js_express_中间件 middleware_登录/注册实例

标签:war   规范   app   遍历   sans   can   ***   方法   避免   

原文地址:https://www.cnblogs.com/tianxiaxuange/p/10157205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!