node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入
npminstallexpress
1.node.js中express模块创建服务端
在js代码同文件位置新建一个文件夹(www_root),里面存放网页文件等,就可以在浏览器中访问了
varexpress=require("express");
varpath=require("path");
varapp=express();
//目录(当前目录下的www_root目录)
app.use(express.static(path.join(process.cwd(),"www_root")));
//监听
varserver=app.listen(6080);
app.get('/',function(req,res){
//发送数据
res.send('HelloWorld~~~~~~~~~~~~!');
});
//get,处理响应
app.get("/login",function(request,respones){
console.log("/logincomming");
//服务器收到请求后,获取客户端get操作参数
console.log(request.query);
//服务器回信息给客户端
respones.send("已连接上服务器~~");
});
app.post("/upload",function(request,respones){
console.log("/uploadcomming");
//获得url上传来的参数
console.log(request.query);
//获得用户给我们发送过来的数据
//监听我们的data来获得
request.on("data",function(data){
console.log(data.toString());
respones.send("UPLOADOK");
});
});
2.http模块客户端发请求
(实例1)http_get测试
varhttp=require("http");
/*
callback(is_success,data/erro)
*/
functionhttp_get(ip,port,url,params,callback){
//创建一个http.ClientRequest对象
varoptions={
host:ip,
port:port,
path:url+"?"+params,
method:"GET",
};
varrequest=http.request(options,function(incoming_msg){
console.log("getrespones");
});
//发送这个请求
request.end();
}
http_get("127.0.0.1",6080,"/login","uname=jadeshu&upw=123456",function(is_ok,data){
});
(实例2)http_get、http_post测试
varhttp=require("http");
/*
[100]="Continue",
[101]="SwitchingProtocols",
[200]="OK",
[201]="Created",
[202]="Accepted",
[203]="Non-AuthoritativeInformation",
[204]="NoContent",
[205]="ResetContent",
[206]="PartialContent",
[300]="MultipleChoices",
[301]="MovedPermanently",
[302]="Found",
[303]="SeeOther",
[304]="NotModified",
[305]="UseProxy",
[307]="TemporaryRedirect",
[400]="BadRequest",
[401]="Unauthorized",
[402]="PaymentRequired",
[403]="Forbidden",
[404]="NotFound",
[405]="MethodNotAllowed",
[406]="NotAcceptable",
[407]="ProxyAuthenticationRequired",
[408]="RequestTime-out",
[409]="Conflict",
[410]="Gone",
[411]="LengthRequired",
[412]="PreconditionFailed",
[413]="RequestEntityTooLarge",
[414]="Request-URITooLarge",
[415]="UnsupportedMediaType",
[416]="Requestedrangenotsatisfiable",
[417]="ExpectationFailed",
[500]="InternalServerError",
[501]="NotImplemented",
[502]="BadGateway",
[503]="ServiceUnavailable",
[504]="GatewayTime-out",
[505]="HTTPVersionnotsupported",
}
*/
/*
callback(is_success,data/erro)
*/
//get请求的参数,是带在URL的地址上面的
functionhttp_get(ip,port,url,params,callback){
//step1,创建一个http.ClientRequest
varoptions={
host:"127.0.0.1",
port:port,
path:url+"?"+params,
method:"GET"
};
//当有请求返回的时候,参数就会被传递为http.IncomingMessage
varreq=http.request(options,function(incoming_msg){
console.log("responesstatus"+incoming_msg.statusCode);
//监听IncomingMessage的data事件,当收到服务器发过来的数据的时候,触发这个事件
incoming_msg.on("data",function(data){
if(incoming_msg.statusCode===200){
callback(true,data);
}
});
});
//把这个请求发送出去
req.end();
}
/*
http_get("127.0.0.1",6080,"/login","uname=blake&upwd=123456",function(is_ok,data){
if(is_ok){
console.log(data.toString());
}
});
*/
//post可以带body数据传到服务器
functionhttp_post(ip,port,url,params,body,callback){
//step1,创建一个http.ClientRequest
varoptions={
host:"127.0.0.1",
port:port,
path:url+"?"+params,
method:"POST",
headers:{
"Content-Type":"application/x-www-form-urlencoded",
"Content-Length":body.length
}
};
varreq=http.request(options,function(incoming_msg){
console.log("responesstatus"+incoming_msg.statusCode);
//监听IncomingMessage的data事件,当收到服务器发过来的数据的时候,触发这个事件
incoming_msg.on("data",function(data){
if(incoming_msg.statusCode===200){
callback(true,data);
}
});
});
//step2写入body数据
req.write(body);
//发送请求
req.end();
}
http_post("127.0.0.1",6080,"/upload","filename=my_file.txt","HelloHtppPost",function(is_ok,data){
if(is_ok){
console.log("upload_success",data.toString());
}
});
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接