node.js中express模块创建服务器和http模块客户端发请求

首先下载express模块,命令行输入

npm install express

1.node.js中express模块创建服务端

在js代码同文件位置新建一个文件夹(www_root),里面存放网页文件等,就可以在浏览器中访问了

var express = require("express");

var path = require("path");

var app = express();

//目录 (当前目录下的www_root目录)

app.use(express.static(path.join(process.cwd(),"www_root")));

//监听

var server = app.listen(6080);

app.get('/', function (req, res) {

//发送数据

res.send('Hello World ~~~~~~~~~~~~!');

});

// get, 处理响应

app.get("/login", function (request, respones) {

console.log("/login comming");

// 服务器收到请求后,获取客户端get操作参数

console.log(request.query);

// 服务器回信息给客户端

respones.send("已连接上服务器~~");

});

app.post("/upload", function(request, respones) {

console.log("/upload comming");

// 获得url上传来的参数

console.log(request.query);

// 获得用户给我们发送过来的数据

// 监听我们的data来获得

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

console.log(data.toString());

respones.send("UPLOAD OK");

});

});

2.http模块客户端发请求

(实例1)http_get测试

var http = require("http");

/*

callback(is_success, data/erro)

*/

function http_get(ip, port, url, params, callback){

//创建一个http.ClientRequest对象

var options = {

host : ip,

port : port,

path : url+"?"+params,

method : "GET",

};

var request = http.request(options,function(incoming_msg){

console.log("get respones");

});

//发送这个请求

request.end();

}

http_get("127.0.0.1", 6080, "/login", "uname=jadeshu&upw=123456", function(is_ok,data){

});

(实例2)http_get、http_post测试

var http = require("http");

/*

[100] = "Continue",

[101] = "Switching Protocols",

[200] = "OK",

[201] = "Created",

[202] = "Accepted",

[203] = "Non-Authoritative Information",

[204] = "No Content",

[205] = "Reset Content",

[206] = "Partial Content",

[300] = "Multiple Choices",

[301] = "Moved Permanently",

[302] = "Found",

[303] = "See Other",

[304] = "Not Modified",

[305] = "Use Proxy",

[307] = "Temporary Redirect",

[400] = "Bad Request",

[401] = "Unauthorized",

[402] = "Payment Required",

[403] = "Forbidden",

[404] = "Not Found",

[405] = "Method Not Allowed",

[406] = "Not Acceptable",

[407] = "Proxy Authentication Required",

[408] = "Request Time-out",

[409] = "Conflict",

[410] = "Gone",

[411] = "Length Required",

[412] = "Precondition Failed",

[413] = "Request Entity Too Large",

[414] = "Request-URI Too Large",

[415] = "Unsupported Media Type",

[416] = "Requested range not satisfiable",

[417] = "Expectation Failed",

[500] = "Internal Server Error",

[501] = "Not Implemented",

[502] = "Bad Gateway",

[503] = "Service Unavailable",

[504] = "Gateway Time-out",

[505] = "HTTP Version not supported",

}

*/

/*

callback(is_success, data/erro)

*/

// get请求的参数,是带在URL的地址上面的

function http_get(ip, port, url, params, callback) {

// step1,创建一个 http.ClientRequest

var options = {

host: "127.0.0.1",

port: port,

path: url + "?" + params,

method: "GET"

};

// 当有请求返回的时候,参数就会被传递为http.IncomingMessage

var req = http.request(options, function(incoming_msg) {

console.log("respones status " + 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数据传到服务器

function http_post(ip, port, url, params, body, callback) {

// step1,创建一个 http.ClientRequest

var options = {

host: "127.0.0.1",

port: port,

path: url + "?" + params,

method: "POST",

headers: {

"Content-Type": "application/x-www-form-urlencoded",

"Content-Length": body.length

}

};

var req = http.request(options, function(incoming_msg) {

console.log("respones status " + 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", "Hello Htpp Post", function(is_ok, data) {

if (is_ok) {

console.log("upload_success", data.toString());

}

});

总结

以上是 node.js中express模块创建服务器和http模块客户端发请求 的全部内容, 来源链接: utcz.com/z/312766.html

回到顶部