Node.js——Connect

Connect

Connect是一个基于HTTP服务器的工具集,它提供了一种新的组织代码的方式来和请求、响应对象进行交互,即中间件。(需要注意的是本文中的connect版本为1.8.7,所以仅供学习参考)

中间件

基本形式:

			var server = require('connect').createServer();
				//第一个中间件
				server.use(function (req, res, next) {
					//相应的操作
					.
					.
					.
					//交给其他中间件处理
					next(); 		
				});
				//第二个中间件
				server.use(function (req, res, next) {
					//相应操作
					.
					.
					.
					//交给其他中间件处理	
				});
				server.listen(3000);

需要注意:
要先在package.json中安装依赖

		"dependencies": {
			"connect": "1.8.7"
		}

或者 npm install connect@1.8.7

static中间件

挂载
static允许任意一个URL匹配到文件系统中任意的一个目录
例如:

		//使目录/images和url /my-images关联
		server.use('/my-images', connect.static('/path/to/images'));

maxAge
static接收一个名为maxAge的选项,代表一个资源在客户端缓存时间
例如:

		//客户端的所有JS文件并不到一个文件夹中,并在文件名中加上修订好,进而永久缓存
		server.use('/js', connect.static('/path/to/bundles', {maxAge: 10000000000000}))

hidden
static接收名为hidden的选项,如果该选项为true,则Connect会托管以点.开始的文件
例如:

	    server.use(conncet.static('/path/to/resources', {hidden: true}))
query中间件

在Node中,如果以查询字符串的形式传入服务器的数据,会以字符串的形式保存在(req.url
通过query中间件,服务器可以直接获取这些数据
例如:

		server.use(connect.query);
		server.use(function (req, res) {
			console.log(res.url.name)	
			//假设查询字符串为name=wjc
			//输出wjc
		})
logger中间件

logger用于客户端发送来的请求信息和服务端发送的响应信息打印在终端。
它提供的四种日志格式:

  • default
  • dev
  • short
  • tiny
    例如:
		var connect = require('connect'),
			server = connect.createServer();
		server.use(connect.logger('dev'));
bodyParser中间件

bodyParser中间件可以用于解析POST请求消息体,即具备和qs模块一样的功能。
例如:

		var connect = require('connect');
			
		var server = connect(
				connect.bodyParser(),
				function (req, res, next) {
					//假设请求的消息体为name=wjc
					console.log(res.body.name)
					//输出wjc
				}
			)
处理上传

bodyParser中间件还可以用于处理用户上传的文件
例如:

		var connect =  require('connect');
			
		var server = connect(
				connect.bodyParser(),
				function (req, res, next) {
					//可以通过 req.cookies.kayvalue  访问cookie数据
				}
			)
cookieParser

cookieParser类似bodyParser为读取cookie提供了便捷
例如:

			var server = connect(
				connect.cookieParser(),
				function (req, res, next) {
					//可以通过 req.cookies.kayvalue  访问cookie数据
				}
			)
session会话

session同样地为服务端操作session提供了便捷
例如:

		var connect = require('connect');

		var server = connect(
				connect.session(),
				function (req, res, next) {
					//可以通过 req.session.name = 'wjc' 来设置
				}
			)

如果你和我同样是一个young coder!
欢迎关注本人公众号Code center——春繁秋实,年年常茂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值