予備のNode.js

Node.jsのご紹介


  • Node.jsのは、2009年に誕生した、Node.jsのは、C ++で書かれた言語を使用してJavascriptの実行環境です。Node.jsのJavaScriptがブラウザの外で実行できるように、JavaScriptのランタイム環境クロームV8エンジンで、あなたは書き込み、サーバー側のコードにJavaScript言語を使用することができます。

Node.jsのをインストールします。

する公式サイトのNode.jsの安定版をダウンロードし、ノードのバージョンは、非安定版の安定版偶奇バージョンです。

  • MACが直接取り付けたりインストールする醸造します

  • インストール後に自動的にNode.jsのNPM(ノードパッケージマネージャ)がインストールされています:パッケージ管理ツール。
  • 命令ノード-vでインストールが完了したかどうかを確認し、ビューノードのバージョン番号に、NPM -v NPMバージョンを確認します。

使用のNode.jsは、最初のサーバーを達成するために

初期気持ちのNode.js

//引入http模块
let http = require("http");
//创建一个服务器
let serve = http.createServer((req,res)=>{
    console.log("hello");
    res.end("hello world");
})
//设置端口号
serve.listen(3000);
  • Google Chromeのデフォルトの非セキュアポートリストは、次のポートを避けるようにしてください。

    1、// TCPMUX
    7、//エコー
    9、//破棄
    11、// SYSTAT
    13、//昼間
    15、//のnetstat
    17、// QOTD
    19、//のchargen
    20、// FTPデータ
    21、// FTPアクセス
    22、// SSH
    23、//テルネット
    25、// SMTP
    37、//時間
    42、//名前
    43、// NICNAME
    53、//ドメイン
    77、// PRIV-RJS
    79、//指
    87 、// ttylink
    95、// SUPDUP
    101、// hostriame
    102、//イソTSAP
    103、// gppitnp
    104、// ACR-NEMA
    109、// POP2
    110、// POP3
    111、// SUNRPC
    113、 //認証
    、// SFTP 115
    117、// UUCPパス
    119、// NNTP
    123、// NTP
    135、// LOC-SRV / EPMAP
    139、//のNetBIOS
    143、// IMAP2
    179、// BGP
    389、// LDAP
    465、// SMTP + SSL
    512、// / EXEC印刷
    、513 //ログイン
    、//シェル514を
    プリンタ515、//
    526、//テンポ
    530、//宅配
    531は、//チャット
    、532 //ネットニュース
    、// UUCP 540
    remotefs、// 556
    、563 // NNTP + SSL
    587、// STMP?
    601、// ??
    636、// LDAP + SSL
    993、// LDAP + SSL
    995、// POP3 + SSL
    2049、// NFS
    / PasswordServer 3659、//リンゴ-SASL
    4045、// lockdの
    6000、// X11
    6665、//代替IRC [アップルのほか]
    6666、//代替IRC [アップルのほか]
    6667、//標準のIRC [アップルのほか]
    6668、//代替IRC [アップル追加]

    6669、//代替IRC [アップル追加]

モジュラー

まず、なぜモジュラーう

  • 今拡大するフロントエンドのコードで、開発の初期段階のJavaScriptことを、いくつかの単語を簡単なページの相互作用ロジックを達成することです

    振とうスクリプト言語として埋め込まれたJavaScriptをターゲットに、この時間は、JavaScriptが組織コードのための重大な支援を提供していない、JavaScriptコードは非常に単純な組織的な規範であるこのような大規模なコードを管理するのに十分ではありません。

二、モジュラーcommonjsのNode.jsの仕様

  • 何のJS機能モジュールはCommonJSがされて入ってきたので、それだけではなく、ブラウザ、JSはどこにでも実行することができます望んではありませんので、CommonJS JSのパフォーマンスは、あなたの仕様を作ることです。

    カスタムモジュールを作成します。1.

    • モジュールの形で文書の導入

      home.js実行ファイル

      //通过require来引入
      require("./aModule"); //注意一定要有"./",文件后缀可加可不加。

      ファイルamodule.js

      console.log("我是amodule模块111");
    • モジュールの形でフォルダの導入

      • home.js実行ファイル
      require("./aModuledir"); //必须加"./"

      index.jsファイル内aModuleDirは、自動的に実行中のindex.jsファイルのフォルダを検索します

      console.log("我是aModule模块文件夹");
      • もちろん、あなたが実行可能ファイルを指定するには、デフォルトのブートファイル、フォルダ内に新しいpackage.jsonを設定することができます
      {
        "name":"aModule",
        "version":"1.0.0",
        "main":"test.js"
      }
  • カスタムモジュールの輸出需要

    module.exportsは、エクスポート; ___dirname、__filename

    module.exports = {
        a:"我是a的值",
        b(){
            console.log("我是导出的b函数");
        }
    }

    エクスポートファイルの導入

    let mymodule = require("bModule");
    console.log(mymodule.a);
    mymodule.b();

    または輸出することによって導出

    exports.fn = function(){
        console.log("我是fn函数");  
    }

    インポートファイル

    let myfn = require("bModule").fn;
    myfn();
    // 或者 通过解构赋值 
    let { fn } = require("bModule");
    fn();
  • モジュールのロードの優先順位は、最初のファイルのディレクトリ。

2、内蔵モジュール。

ビルトインモジュールnodejsがありますバッファー、C / C ++アドオン、子プロセス、クラスタ、コンソール、クロム

ypto、デバッガ、DNS、ドメイン、エラー、イベント、ファイルシステム、

グローバル、HTTP、HTTPS、モジュール、ネット、OS、パス、プロセス、Pのunycode、クエリ文字列、Readlineの、REPL、ストリーム、文字列デコーダ、タイマー、TLS / SSL、TTY、UDP /データグラム、URL、ユーティリティ、V8、 VM、ZLIB;ビルトインモジュールをインストールする必要はありません、モジュールが外部からインストールする必要があります。

NPMパッケージマネージャ

住所NPM(ノードパッケージマネージャ)の公式サイトですNPM公式サイト

  • NPM一般的なコマンド。
    • NPMのinit:ブートファイルpackage.jsonを作成します
    • NPMヘルプ(NPM -h):ビューNPMのヘルプ
    • NPMバージョン(NPM -v):ビューNPMバージョン。
    • NPM検索:検索
    • NPM(NPM I)をインストール:インストール時のデフォルトをカレントディレクトリに、ないnode_modulesは、フォルダを作成する場合は、
      • モジュール名は、-Sまたは--saveすなわちNPMモジュール名--save書き込み依存関係をインストールインストールNPM
      • NPMモジュール名-D又は-save-DEVすなわちNPMインストールモジュール名--save-DEV書き込まdevDependenciesをインストール
      • NPMインストールモジュール名-gグローバルマウント(コマンドラインを使用して)
      • 指定インストールのバージョンモジュールNPM Iモジュール名@ 1.0「@」記号が指定されました。
    • NPM更新(NPM -up):更新
    • NPM削除またはNPMのアンインストール:削除
    • インストールまたはNPMルート-g介してグローバルパスを表示するために実装されている現在のパッケージのNPMルートパスを参照。

FSモジュール

  • FSファイル操作するモジュールであり、すべてのファイル操作は、同期および非同期の分割同期を特徴としているとして「同期」を追加します。読んでファイルを非同期「readFileの」、ファイルの同期「readFileSyncは」読み取ります。

    ファイル操作

    • ファイルを読み取ります:

      • 非同期読み取り
      let fs = require("fs");
      fs.readFile("1.txt",(err,data)=>{
          if(err){
              return console.log(err);
          }
          console.log(data.toString());
      })
      • 同期は、ファイルを読みます
      let fs = require("fs");
      let res = fs.readFileSync("1.txt");
      console.log(res.toString());
    • ファイルの書き込み:

      let fs = require("fs");
      //flag配置  "a":追加写入,"w":写入,"r":读取
      fs.writeFile("2.txt","我是要写入的内容",{flag:"w"},err=>{
          if(err){
              return console.log(err);
          }
          console.log("写入成功");   
      })
    • ファイルの削除

      fs.unlink("2.txt",err=>{
          if(err){
              return console.log(err);
          }
          console.log("删除成功");
      })
    • ファイルのコピー

      • 最初のファイルを読み込み、そのファイルへの書き込み
      function mycopy(src,dest){
         fs.writeFileSync(dest,fs.readFileSync(src));
      }
      mycopy("1.txt","4.txt");
    • ファイル名を変更し、ディレクトリには、名前の変更によって操作することができます

      fs.rename("1.txt","5.txt",function (err) {
          if(err){
              console.log(err);
          }else{
              console.log("修改成功");
          }
      });
    • ファイルが存在するかどうかを確認

      fs.exists("4.txt",function (exists) {
          console.log(exists);
      })

バッファバッファ

  • バッファの作成
    • 直接作成
    • アレイの作成
    • 文字列を作成します。
    • ごみ処理
    • バッファ変換のtoString

ストリームの流れ

  • ストリームstream:ストリームデータ処理不可分
    • 原則ストリーム
    • ストリームデータの取得
      • パイプ
      • データ
      • 終わり
    • コピーストリームの実装方法
    • フロービューをロードする実装方法

概要

  • nodejsのインストールと使用

  • サーバーとクライアント

  • モジュラーcommonjs

  • 使用FSモジュール(ファイル操作やディレクトリの操作)

  • ストリーム
  • バッファ

おすすめ

転載: www.cnblogs.com/forcee/p/12301077.html