Node学习入门篇(六):Connect

本文介绍了Node.js中的Connect框架,包括其常用的组件、中间件工作机制、中间件的顺序重要性、错误处理中间件的使用,以及如何创建可配置中间件和构建路由。Connect中间件是一个函数,拦截HTTP请求和响应,通过next参数控制执行流程。中间件顺序影响程序响应,错误处理中间件是专门用于处理程序错误的组件。同时,文章还探讨了如何用NODE_ENV设定程序模式和基本认证机制。
摘要由CSDN通过智能技术生成

内容

  • 搭建一个Connect程序
  • Connect中间件的工作机制
  • 为什么中间件的顺序很重要
  • 挂载中间件和服务器创建可配置的中间件
  • 使用错误处理中间件
Connect常用的组件

在Connect中,中间件组件是一个函数,它拦截HTTP服务器提供的请求和响应对象,执行逻辑,然后或者结束响应,或者把它传递给下一个中间件组件。

Connect用分派器把中间件“连接”在一起

  • 请求日志
  • 静态文件服务
  • 请求体解析
  • 会话管理

这里写图片描述

使用connect

1)安装

npm install connect

2)引入
Connect创建的“程序”实际上是一个JavaScript函数,用来接收HTTP请求并把它派发给你指定的中间件

它依次调用所有附着的中间件组件,直到其中一个决定响应该请求。如果直到中间件列表末尾还没有组件决定响应,程序会用404作为响应

var connect = require('connect');
var app = connect();

app.listen(3000);
connect工作机制

在Connect中,中间件组件是一个JavaScript函数,按惯例会接受三个参数:

一个请求对象,
一个响应对象,
还有一个通常命名为next的参数,它是一个回调函数,表明这个组件已经完成了它的工作,可以执行下一个中间件组件了

  • 使用中间件

    中间件组件hello的参数中没有next回调。因为这个组件结束了HTTP响应,从不需要把控制权交回给分派器

    var connect = require('connect');
    var app = connect();
    
    app.use(logger);
    app.use(hello);
    app.listen(3000, function() {
         
        console.log('listening...');
    });
    
    function logger(req, res, next) {
         
        console.log('%s %s', req.method, req.url);
        next();
    }
    
    function hello(req, res) {
         
        res.setHeader('Content-Type','text/plain');
        res.end('hello world');
    }
  • 中间件的顺序

    1) 中间件.use()调用的顺序很重要,以及如何策略性地调整顺序改变程序的工作方式
    2) 当一个组件不调用next()时,命令链中的后续中间件都不会被调用
    3) 使用中间件执行认证,只允许有效的用户访问

  • 挂载中间件和服务器

    挂载将只对路径前缀(挂载点)内的请求调用中间件或程序,通过拦截请求进行处理

    • basic认证
    • Basic认证是一种简单的认证机制,借助带着Base64编码认证信息的HTTP请求头中的authorization字段进行认证
    • 中间件组件解码认证信息,检查用户名和密码的正确性
    function restrict(req, res, next) {
         
        var authorization = req.headers.authorization;
        if(!authorization) return next(new Error('Unauthorized'));
    
        var parts = authorization.split(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值