最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js中express模塊創(chuàng)建服務器和http模塊客戶端發(fā)請求

 更新時間:2019年03月06日 10:24:42   作者:jadeshu  
今天小編就為大家分享一篇關于node.js中express模塊創(chuàng)建服務器和http模塊客戶端發(fā)請求,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

首先下載express模塊,命令行輸入

npm install express

1.node.js中express模塊創(chuàng)建服務端

在js代碼同文件位置新建一個文件夾(www_root),里面存放網(wǎng)頁文件等,就可以在瀏覽器中訪問了

var express = require("express");
var path = require("path");
var app = express();
//目錄  (當前目錄下的www_root目錄)
app.use(express.static(path.join(process.cwd(),"www_root")));
//監(jiān)聽
var server = app.listen(6080);
app.get('/', function (req, res) {
  //發(fā)送數(shù)據(jù)
  res.send('Hello World ~~~~~~~~~~~~!');
 });
// get, 處理響應
app.get("/login", function (request, respones) {
 console.log("/login comming"); 
 // 服務器收到請求后,獲取客戶端get操作參數(shù)
 console.log(request.query);
 // 服務器回信息給客戶端
 respones.send("已連接上服務器~~");
});
app.post("/upload", function(request, respones) {
 console.log("/upload comming");
 // 獲得url上傳來的參數(shù)
 console.log(request.query);
 // 獲得用戶給我們發(fā)送過來的數(shù)據(jù)
 // 監(jiān)聽我們的data來獲得
 request.on("data", function(data) {
 console.log(data.toString());
 respones.send("UPLOAD OK"); 
 });
});

2.http模塊客戶端發(fā)請求

(實例1)http_get測試

var http = require("http");
/*
callback(is_success, data/erro)
*/
function http_get(ip, port, url, params, callback){
  //創(chuàng)建一個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");
  });
  //發(fā)送這個請求
  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請求的參數(shù),是帶在URL的地址上面的
function http_get(ip, port, url, params, callback) {
 // step1,創(chuàng)建一個 http.ClientRequest
 var options = {
 host: "127.0.0.1",
 port: port,
 path: url + "?" + params,
 method: "GET"
 };
 // 當有請求返回的時候,參數(shù)就會被傳遞為http.IncomingMessage
 var req = http.request(options, function(incoming_msg) {
 console.log("respones status " + incoming_msg.statusCode);
 // 監(jiān)聽IncomingMessage的data事件,當收到服務器發(fā)過來的數(shù)據(jù)的時候,觸發(fā)這個事件
 incoming_msg.on("data", function(data) {
  if (incoming_msg.statusCode === 200) {
  callback(true, data);
  }
 });
 });
 // 把這個請求發(fā)送出去
 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數(shù)據(jù)傳到服務器
function http_post(ip, port, url, params, body, callback) {
 // step1,創(chuàng)建一個 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);
 // 監(jiān)聽IncomingMessage的data事件,當收到服務器發(fā)過來的數(shù)據(jù)的時候,觸發(fā)這個事件
 incoming_msg.on("data", function(data) {
  if (incoming_msg.statusCode === 200) {
  callback(true, data);
  }
 });
 });
 // step2 寫入body數(shù)據(jù)
 req.write(body);
 // 發(fā)送請求
 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()); 
 }
});

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • Nodejs腳本實現(xiàn)批量修改文件

    Nodejs腳本實現(xiàn)批量修改文件

    當我們想要更改一下所有的文件,如何可以在修改到這些文件的同時又能實現(xiàn)節(jié)省時間呢,通過這篇文章我們將來學習一下怎么通過這個腳本來實現(xiàn)這個功能,希望對大家有所幫助
    2023-11-11
  • node.js+Ajax實現(xiàn)獲取HTTP服務器返回數(shù)據(jù)

    node.js+Ajax實現(xiàn)獲取HTTP服務器返回數(shù)據(jù)

    這篇文章主要介紹了node.js+Ajax實現(xiàn)獲取HTTP服務器返回數(shù)據(jù),講解的十分詳細,也給出了很多的實例,是篇非常不錯的文章,這里推薦給大家。
    2014-11-11
  • 基于websocket實現(xiàn)簡單聊天室對話

    基于websocket實現(xiàn)簡單聊天室對話

    這篇文章主要為大家詳細介紹了基于websocket實現(xiàn)簡單聊天室對話,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • nodejs搭建本地http服務器教程

    nodejs搭建本地http服務器教程

    本篇文章主要介紹了nodejs搭建本地http服務器教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • windows8.1+iis8.5下安裝node.js開發(fā)環(huán)境

    windows8.1+iis8.5下安裝node.js開發(fā)環(huán)境

    這篇文章主要介紹了windows8.1+iis8.5下安裝node.js開發(fā)環(huán)境的方法,需要的朋友可以參考下
    2014-12-12
  • node實現(xiàn)爬蟲的幾種簡易方式

    node實現(xiàn)爬蟲的幾種簡易方式

    這篇文章主要給大家介紹了關于node實現(xiàn)爬蟲的幾種簡易方式,文中通過示例代碼介紹的非常詳細,對大家學習或者使用node具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • NodeJs操作MongoDB教程之分頁功能以及常見問題

    NodeJs操作MongoDB教程之分頁功能以及常見問題

    這篇文章主要給大家介紹了關于NodeJs操作MongoDB教程之分頁功能以及常見問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用NodeJs具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • Node.js環(huán)境下編寫爬蟲爬取維基百科內容的實例分享

    Node.js環(huán)境下編寫爬蟲爬取維基百科內容的實例分享

    WikiPedia平時在國內不大好訪問-- 所以用爬蟲一次性把要看的東西都爬下來保存慢慢看還是比較好的XD 這里我們就來看一下Node.js環(huán)境下編寫爬蟲爬取維基百科內容的實例分享
    2016-06-06
  • node.js中的url.parse方法使用舉例

    node.js中的url.parse方法使用舉例

    url.parse()可以將一個完整的URL地址,分為很多部分,下面這篇文章主要給大家介紹了關于node.js中url.parse方法使用的相關資料,文中通過實例代碼和圖文介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • node.js?使用process.argv獲取和處理命令行參數(shù)的操作

    node.js?使用process.argv獲取和處理命令行參數(shù)的操作

    process.argv是Node.js中用于獲取命令行參數(shù)的數(shù)組,基本使用方法是通過命令行傳遞參數(shù)并在腳本中訪問這些參數(shù),參數(shù)可以根據(jù)需求進行處理,也可以使用第三方庫如minimist或yargs來簡化參數(shù)解析,這些工具可以幫助開發(fā)者有效地管理和使用命令行參數(shù),提高腳本的靈活性和功能性
    2024-10-10

最新評論

宁陕县| 喜德县| 通山县| 宣威市| 阿拉善左旗| 云龙县| 卫辉市| 龙江县| 蓝山县| 新邵县| 永德县| 宜兰市| 措美县| 黄陵县| 图片| 德昌县| 天台县| 阳原县| 蓬溪县| 志丹县| 通化市| 沧州市| 广安市| 姜堰市| 桦南县| 南开区| 延寿县| 达日县| 施秉县| 清新县| 信阳市| 建瓯市| 安塞县| 泉州市| 呈贡县| 清远市| 运城市| 吴桥县| 延津县| 红原县| 屯留县|