Node.jsでhttpモジュールを使用する方法

亚连
リリース: 2018-06-09 16:59:43
オリジナル
2240 人が閲覧しました

この記事では主に、node.js http モジュールの詳細な理解を紹介し、参考にしていきます。

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の2種類に分かれており、getリクエストのURLアドレスにはパラメータがあり、req.urlはパラメータを取得することができます。より複雑。 req.on() を使用してポストリクエストを処理します。

ポストリクエストメソッド: req.on("data"function(){}) を使用して読み取り、str 文字列連結を使用し、req.on("end",function(){}) が完了した後に出力します。投稿リクエストで送信するパラメーター;

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, field, fies){}) メソッド コールバック関数 3 つのパラメータ

  1. err: エラーメッセージを返す

  2. fields: 投稿リクエストによって返されるフィールドと対応する値

  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シミュレーションクライアント

主にオプション設定、最も基本的なパラメータは次のコードブロックです。

  1. メソッド: リクエストメソッドを記述します。

  2. ホスト: ここではローカルホストを例にします。

  3. パス: リクエストのパス。

    this http.createServer() を使用してサーバーを作成する代わりに、http.request() を使用してサーバーをリクエストします。残りはサーバーとほぼ同じです。
  4. rreee
  5. 以上が皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。

    関連記事:

vue-routerでElementUIを使ったナビゲーションを実装する方法

詳しい説明 vueプロジェクトにelementUIコンポーネントを導入する

vueでリフレッシュとタブ切り替えを実装する

Vueでの方法cli で別のページの背景色を設定するには

Angular2 でのマテリアルの使用について (詳細なチュートリアル)

Angular で Lodash メソッドを使用するにはどうすればよいですか?

ネイティブjsを使用して、都道府県と市区町村間の3レベルの連携を実現します

以上がNode.jsでhttpモジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート