express-7-request

来源:互联网 发布:win7人工智能 编辑:程序博客网 时间:2024/06/09 21:11

request:请求头(主机地址+请求方式+客户浏览器的一些信息)、消息体(主要是用户提交上来的数据)

一、属性:

baseUrl:当前路由挂载的路径,

hostname:服务器主机名称

ip:客户的IP地址

params:提交上来的参数

path:主机名称后面的资源路径

protocol:协议名称

query:get请求的信息

route:app下挂载的路由对象

cookies:客户端提交上来的cookie,需要cookieParser中间件

body:post提交的数据对象,需要bodyParser中间件

signedCookies:已签署的cookies   (解析时要声明加密)

app:代表express的application对象

二、方法:

get(field):获取请求头中对应名称的属性

is(type):判断是否有指定的mime类型

param(name):获取指定名称的参数值

三、文件上传

第三方中间件:busboy

var http =require("http");

var express = require("express");

var Busboy = require("busboy");

var fs = require("fs");


var app =exrpress();

http.createServer(app);

app.use(express.static(__dirname_"/public"));

app.post("/fileupload",function(req,res){

//通过请求头信息创建busboy对象

var busboy = new Busboy({headers: req.headers});

//将流链接到busboy对象

req.pipe(busboy);


//监听file事件获取文件(字段名、文件、文件名、传输编码,mime类型)

busboy.on("file",function(fieldname,file,filename,encoding,mimetype){

var writeStream = fs.createWriteStream("./upload/"+filename);

//读取数据

file.on("data",function(data){

cosole.log('File['+fieldname+']got'+data.length+'bytes');

writeStream.write(data);//写入数据

});

//写入完成

file.on("end",function(){

console.log('File['+fieldname+']Finished');

writeStream.end();//关闭写入流

})

})


//监听filed事件获取字段信息(字段名称,字段值,字段名称是否阶段,传输编码,mime类型)

busboy.on("field",function(fieldname,val,fieldnameTruncated,ecoding,mimeype){

console.log('Field['+fieldname+']:value:'+val+',fieldameTruncated='+fieldnameTruncated+',valTruncated='+valTrucated);


//监听完成事件finish

busboy.on('finish',function(){

console.log('form解析完成');

res.writeHead(303,{Connection:'close',Location:'http://www.baidu.com/'});


})

})

})

原创粉丝点击