NodeJS 7-Nodeを勉強します

4643 ワード

7 Node
7.1 Linux環境構築
  • wgethttps://npm.taobao.org/mirrors/node/v6.10.3/node-v6.10.3-linux-x64.tar.xz
  • xz-d node-v 6.10 3-linux-x 64.tar.xz/tar-xzvf node-v 6.10.3-linux-x 64.tar.gz(ストレス解消)
  • tar-xvf node-v 6.10.3-linux-x 64.tar(解凍)
  • ln-s/node-v 6.10.3-linux-x 64/bin/node/usr/local/bin/node(ソフト接続を確立する)
  • ln-s/node-v 6.10.3-linux-x 64/bin/npm/usr/local/bin/npm(ln=link)
  • LTS:long time suppose(長期サポートバージョンは、一般的に3年間有効です.)
    穴を比較する方法:
  • sudo ap-get install nodejs
  • sudo ap-get install npm
  • 7.2 httpsperverを作成する
    nodeの特徴:
  • Chrome V 8エンジンに基づく
  • 単スレッド
  • JavaScriptを使ってバックエンドコードを開発する
  • ブロックされていないIO
  • デモCommon仕様:1、module.exportsを通じて作成します.2,export.オブジェクトを通じて作成する
    //        :module.exports
    module.exports = {
      userName:"Jack",
      sayHello(){
        return "hello"
      }
    }
    
    //        :exports.  
    exports.userName = "Tom";
    exports.sayHello = function () {
      return "World"
    }
    
    //     
    let user = require('./User');
    console.log(`userName:${user.userName}`);
    console.log(`I'm ${user.userName},I say ${user.sayHello()}`)
    Http Serverを作成します.
    let http = require("http");
    let url = require('url');
    let util = require('util');
    
    let server = http.createServer((req,res)=>{
      res.statusCode = 200;
      res.setHeader("Content-Type","text/plain;charset=utf-8");
    
      console.log(`url:${req.url}`);  //    
      console.log(`parse:${url.parse(req.url)}`);  // [object Object]
      console.log(`inspect:${util.inspect(url.parse(req.url))}`) //          
    
      res.end(util.inspect(url.parse(req.url)));
    });
    
    server.listen(3000,'127.0.0.1',()=>{
      console.log("       ,      ,  :http://127.0.0.1.3000/    ")
    })
    Webコンテナを作成し、HTMLコンテンツにアクセスできます.
    
    
    
        
        Title
    
    
      

    let http = require("http");
    let url = require('url');
    let util = require('util');
    let fs = require('fs');
    
    let server = http.createServer((req,res)=>{
      // res.statusCode = 200;
      // res.setHeader("Content-Type","text/plain;charset=utf-8");
    
      var pathname = url.parse(req.url).pathname;
      console.log("file:"+pathname.substring(1));
      fs.readFile(pathname.substring(1),function (err,data) {
        if(err){
          res.writeHead(404,{
            'Content-Type':'text/html'
          })
        }else {
          res.writeHead(200,{
            'Content-Type':'text/html'
          })
          res.write(data.toString());
        }
        // end          。
        res.end();
      })
    
    });
    
    server.listen(3000,'127.0.0.1',()=>{
      console.log("       ,      ,  :http://127.0.0.1.3000/    ")
    })
    
    Httpモジュールクライアントのプレゼンテーション:
    let http = require('http');
    
    let util = require('util');
    
    http.get('http://www.imooc.com/u/card',function (res) {
      let data = '';
      res.on('data',function (chunk) {
        data += chunk;
      });
      res.on('end',function (){
        let jsonpToJson = data.split('(')[1].split(')')[0];
        let result = JSON.parse(jsonpToJson);
        console.log('resultAll:'+util.inspect(result));
        console.log('resultMsg:'+result.msg);
      })
    })
    ここで、ES 6のletとvar、constの違いを説明します.
    JSにはグローバルスコープ、関数スコープがあります.ブロック作用領域の概念がない.ECMAScript 6(ES 6と略称)にブロックレベルのスコープが追加されました.  ブロックスコープは{}によって含まれ、if文とfor文の中の{}もブロックスコープに属します.
  • var定義の変数は、ブロックの概念がなく、ブロックにまたがってアクセスでき、関数にまたがってアクセスできません.
  • letで定義された変数は、ブロック・スコープにしかアクセスできません.ブロックをまたいでアクセスできません.関数をまたいでアクセスすることもできません.
  • constは定数を定義するために使用され、使用時は初期化されなければならず、ブロック作用領域にのみアクセスでき、修正できない.
  • 7.3 nodeによる静的リソースのロード
    7.4 expressフレームに基づく運行環境を構築する
  • express generatorジェネレータ
  • をインストールします.
  • はexpressバージョンを調べます.express-version(express-vはビューの意味です.ここでは他のソフトウェアとは違っています.)npm install express--save.
  • express generatorジェネレータをインストールしてからバージョン番号を確認できます.npm install-g express-generator.
  • ジェネレータによって自動的にプロジェクトを作成する
  •      expressフレームプロジェクトを作成します.  一つのファイルを作成するには、bin、public、routes、view、ap.js、package.jsonが含まれます.
  • 構成解析
  • bin:実行可能ファイル、wwwいくつかのものに対してカプセル化して、効果的なのはひと言だけで、serverを作成しました.
  • public:静的資源.
  • routes:ルート;
  • view:ビュー(.jade言語)
  • ap.js:入り口.
  • package.json:構成は、外との合併が可能です.
  • //    jade  html
    var ejs = require('ejs');
    app.engine('.html',ejs.__express);
    app.set('view engine', 'html');