亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

深入理解node.js http模塊

2024-05-06 16:42:04
字體:
來源:轉載
供稿:網友

http模塊主要用于搭建HTTP服務端和客戶端,使用HTTP服務器或客戶端功能都必須調用http模塊。

創建服務器

var http = require(“http”);var url = require(“url”);//創建服務器//http繼承自tcpvar server = http.createServer(function (req,res) {  var urlstr = req.url;//獲取請求的路徑  var urlMethod = req.method;//獲取請求的方法  var urlObj = url.parse(urlstr,true);  console.log(urlObj);    console.log(urlMethod);  res.end(“hello”);});server.listen(8080);

對請求進行處理

請求分為兩種:get和post,get請求url地址帶參數,req.url便能獲取參數,而post請求便復雜一些。使用req.on()處理post請求。

post請求方式:使用req.on("data"function(){})方式讀取,使用str字符串拼接,在req.on("end",function(){})讀取結束后輸出str便是我們想得到的post請求發送的參數;

get請求方式:在請求地址上使用url.parse(req.url,true).query得到參數。

var http = require("http");var fs = require("fs");var url = require("url");var querystring = require("querystring");var server = http.createServer(function (req,res) {  console.log(req.method);  var pathname = url.parse(req.url,true).pathname;  if(pathname=="/"){  //  加載注冊頁面    var rs = fs.createReadStream("post.html");    rs.pipe(res);  }else if(pathname=="/post"){    // 處理post請求    var str = "";    req.on("data",function (chunk) {      // console.log(chunk.toString());      str += chunk;    });    req.on("end",function(){      var postObj = querystring.parse(str);      console.log(postObj);    })  }else if(pathname=="/get"){    // get請求    var getObj = url.parse(req.url,true).query;    res.write(JSON.stringify(getObj));    res.end();  }else if(pathname!="/favicon.ico"){    var rs = fs.createReadStream("."+pathname);    rs.pipe(res);  };});server.listen(8787);

上傳文件處理

前端html代碼如下:就不細說了。

<form action=“/upimg” method=“post” enctype=“multipart/form-data”>用戶名: <input type=“text” name=“user”><br> 密碼: <input type=“password” name=“pass”><br>上傳圖片: <input type=“file” name=“file1”><br> <input type=“submit” value=“提交”></form>

想要實現文件上傳,要引入formidable模塊var formidable = require("formidable");若是沒有此模塊,在終端輸入 npm install formidable安裝。

form.parse(req,function(err,fields,fies){})方法回調函數的三個參數

  1. err:返回錯誤信息
  2. fields:post請求返回的字段以及對應的值
  3. fies:上傳的文件對象,對象中包含文件的很多詳細信息

得到文件信息后,使用數據流的讀和寫復制文件

var http = require("http");var fs = require("fs");var url = require("url");// 文件上傳var formidable = require("formidable");var server = http.createServer(function(req,res){  var pathname = url.parse(req.url,true).pathname;  if(pathname=="/"){    var rs = fs.createReadStream("uploads.html");    rs.pipe(res);  }else if(pathname=="/uploads"){    // 實例化一個formidable類    var form = new formidable.IncomingForm();   // 調用parse方法    form.parse(req,function(err,fields,files){      if(err){        return console.log(err);      }else{        // console.log("字段",fields);        // 存儲字段        var fieldStr = JSON.stringify(fields);        fs.writeFileSync("1.txt",fieldStr);        // 轉存文件        if(!fs.existsSync("uploads")){          fs.mkdir("uploads");        }       // 隨機路徑        var filePath = files.img.path;        var rs = fs.createReadStream(filePath);        var ws = fs.createWriteStream("./uploads/"+files.img.name);        rs.pipe(ws);        rs.on("data",function (chunk) {                  })        rs.on("end",function(){          console.log("復制成功");          res.write("上傳成功");          res.end();        })        res.setHeader("Content-type","text/html;charset=utf8");          console.log("文件",files);      }    })  }else if(pathname!="/favicon.ico"){    var rs = fs.createReadStream("."+pathname);    rs.pipe(res);  }});server.listen(8880);

http模擬客戶端

主要是options的配置,最基本的參數如下面的代碼塊。

  1. method:說明請求方式;
  2. host: 服務器ip,這里以本地localhost為例;
  3. port:服務器端口號;
  4. path:請求路徑;

此時不在使用http.createServer()創建服務器了,而是使用http.request()請求服務器,其余的都和服務器差不多了。

// 通過nodejs模擬客戶端var http = require("http");var options = {  method:"post",  host:"localhost",  port:2121,  path:"/"};var request = http.request(options,function (res) {  var str = "";  res.on("data",function(chunk){    str += chunk;  });  res.on("end",function () {    console.log(str);  })});var obj = {  name:"李四",  age:20}request.write(JSON.stringify(obj));request.end();

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产美女精品视频| 黑人狂躁日本妞一区二区三区| 日韩福利视频在线观看| 精品国产欧美成人夜夜嗨| 在线观看国产成人av片| 精品高清美女精品国产区| 激情懂色av一区av二区av| 97精品免费视频| 亚洲男人第一网站| 中国日韩欧美久久久久久久久| 26uuu另类亚洲欧美日本老年| 国产91精品在线播放| 91国在线精品国内播放| 欧美日韩精品中文字幕| 国产亚洲精品久久久| 国产精品扒开腿做爽爽爽男男| 国产欧美日韩专区发布| 成人精品视频久久久久| 成人一区二区电影| 91国产美女在线观看| 久久亚洲综合国产精品99麻豆精品福利| 一区二区福利视频| 成人久久精品视频| 国产在线观看一区二区三区| 成人免费网站在线观看| 精品久久久久久中文字幕大豆网| 欧美日韩国产丝袜美女| 欧美疯狂xxxx大交乱88av| 一区二区三区久久精品| 欧美视频中文字幕在线| 欧美不卡视频一区发布| 久久精品国产69国产精品亚洲| 亚洲一区二区久久久久久久| 国产成人综合一区二区三区| 欧美高清在线视频观看不卡| 国产女人精品视频| 国产精品久久久久7777婷婷| 国产在线精品成人一区二区三区| 久久影院资源网| 中文字幕精品av| 亚洲一区二区久久久| 国内精品久久久久影院优| 精品亚洲一区二区三区在线观看| 久久精品国亚洲| 17婷婷久久www| 97精品国产97久久久久久春色| 亚洲人成电影在线播放| 91欧美精品午夜性色福利在线| 成人在线国产精品| www.欧美三级电影.com| 日韩h在线观看| 亚洲人成网站免费播放| 亚洲精品动漫久久久久| 欧美另类暴力丝袜| 欧美激情亚洲国产| 97在线视频免费看| 欧美亚洲国产视频| 日本精品久久电影| 这里只有视频精品| 久久久噜噜噜久噜久久| 亚洲免费中文字幕| 精品国产精品三级精品av网址| 97视频网站入口| 91av网站在线播放| 中文字幕在线成人| 亚洲精品国产精品乱码不99按摩| 正在播放欧美一区| 欧美电影在线观看| 精品女厕一区二区三区| 一区二区三区四区精品| 影音先锋欧美精品| www日韩欧美| 91精品啪aⅴ在线观看国产| 久久99国产综合精品女同| 国产精品27p| 国产精品视频一区二区高潮| 中文字幕国产日韩| 午夜精品久久久久久久99黑人| 91精品国产免费久久久久久| 伊是香蕉大人久久| 亚洲性视频网址| 国语自产精品视频在免费| 日韩电影网在线| 久久最新资源网| 丝袜亚洲欧美日韩综合| 久久综合五月天| 亚洲激情免费观看| 81精品国产乱码久久久久久| 亚洲国产精彩中文乱码av| 91精品视频大全| 国产精品中文在线| 国产香蕉精品视频一区二区三区| 国产精品视频自拍| 久久精品国产99国产精品澳门| 在线亚洲午夜片av大片| 久久精品欧美视频| 亚洲女性裸体视频| 亚洲а∨天堂久久精品9966| 日韩免费av在线| 亚洲国产精品嫩草影院久久| 精品国产区一区二区三区在线观看| 日韩一区二区三区在线播放| 欧美在线播放视频| 91精品中国老女人| 亚洲综合中文字幕在线观看| 亚洲精品一区av在线播放| 国产亚洲精品美女久久久| 91精品国产自产在线老师啪| 欧美洲成人男女午夜视频| 国产aaa精品| 色综合久久中文字幕综合网小说| 欧美自拍大量在线观看| 国语自产精品视频在线看抢先版图片| 欧美一级大片在线观看| 最近2019年好看中文字幕视频| 中文字幕在线观看日韩| 成人中心免费视频| 欧美性猛交xxxx黑人| 日韩成人中文字幕在线观看| 最近2019年好看中文字幕视频| 91沈先生在线观看| 在线精品国产欧美| 欧美老女人在线视频| 日韩欧美有码在线| 91午夜在线播放| 亚洲国产精品va在线观看黑人| 亚洲精品wwww| 美女久久久久久久| 亚洲剧情一区二区| 国产v综合v亚洲欧美久久| 2019亚洲男人天堂| 国产97在线播放| 亚洲欧洲在线播放| 久久久国产精品x99av| 久久国产精品影片| 国产精品天天狠天天看| 亚洲精品美女在线观看| 欧美超级免费视 在线| 国产精品成人在线| 麻豆国产va免费精品高清在线| 欧美激情精品久久久久久黑人| 丝袜美腿精品国产二区| 亚洲桃花岛网站| 中文字幕精品网| 亚洲视频在线观看免费| 国产精品日韩欧美大师| 九九热这里只有精品免费看| 中文亚洲视频在线| 国产成人精品视频在线| 久热精品在线视频| 懂色av中文一区二区三区天美| 美女黄色丝袜一区| 色综合视频一区中文字幕| 国产成人欧美在线观看| 欧美怡红院视频一区二区三区| 992tv成人免费视频| 国产色婷婷国产综合在线理论片a| 成人欧美在线观看| 国产精品嫩草影院一区二区| 久久久久在线观看| 国产亚洲视频中文字幕视频| 欧美一区二区三区图| 欧美极品欧美精品欧美视频| 欧美日韩国产精品一区二区三区四区|