前端と後端データがnode_要求します

ディレクトリ構造

| ___router
 | | __index.js
 | | __newsdata.json
 | | __routerMethods.js
 |
| ___src
 | | __index.html
 | | __index.js
 |
| ___ index.js

1.入場index.js

HTTP =が必要としましょう( 'HTTP' 
サービスましょう =(」./サービス/ index.js'が必要です

// 1.ファイル名を指定して実行ルータ/オブジェクトのインポートをルーティングindex.jsは、 
ルータを聞かせて=必要(」./ルータ/ index.js' // 2.構成ルーティング方法が使用使用して 
router.useを( '/のgetData' 、router.getdata)

サーバLET = http.createServer((REQ、RES)=> {
   // 3送信要求
  ルーター(REQ、RES)

})。(リッスン)8888を

2.router / index.js

URL =は( 'URL'を必要としましょう
クエリ文字列ましょう =(「クエリ文字列を」必要
要求をしましょう =(「リクエスト」を必要
FS LET =( 'FS'必要//のルーティング方法、分離を導出し、設計をルーティングする 
LETのrouterMethodsを=(」./ routerMethods.js'が必要// 3.1ルーティング設計コンセプト 
module.exportsは=(REQ、RES)=> {
  聞かせてurlObj = url.parse(req.url)
  聞かせてquerystringObj = querystring.parse(urlObj.query)
  せメソッド = module.exportsは[urlObj.pathname.substr(1 )]
  req.querystringObj = querystringObj
   IF (メソッド)メソッド(REQ、RES)は
   、他の{
     // 静的ルーティングリソースがホストされた 
    fs.readFileを(dirnameの+ __ '/../src' + urlObj.pathname、(ERR、データ)=> {
      res.end(データ)
    })
  }
}
// ES6は文法オブジェクト合わせ
// 分離された設計の実装2.2 
Object.assign(module.exportsは、routerMethods)
 // 2.1ルーティング構成 
> = module.exports.use =(URL、コールバック){
  聞かせてurlProp = url.substr(1 
  module.exportsは[urlProp] = コールバック
}

3.router / routerMethods.js

// のルーティング方法を実装し 
てみましょう必要がFS =(「FS」

始めましょう = 5 
module.exportsはを = {
  函(REQ、RES){
    数ましょう = req.querystringObj.count
    fs.readFile(__ DIRNAME + '/newsdata.json'、(ERR、データ)=> {
      データ = JSON.parse(データ)
       の場合(カウント&&カウント!= 5 ){
        聞かせて終了 =(数(カウント)+ スタート)
        res.end(JSON.stringify(data.slice(開始、終了)))
        起動 + = 2 
      }  res.end(JSON.stringify(data.slice(0,5 )))
    })
  }
}

4.newsdata.json

[{
  「上記ID」:「0001」「IMG」:「https://p3.pstatp.com/list/190x124/pgc-image/6278c4e87c7445ecadc687714e589711」「タイトル」:「郡の電力企業の私達の全廃」ジェネレーションパイプ「システム」「詳細」:「中国の電力ニュース政治コメント⋅⋅382 33分前に」
}、{
  「上記のid」:「0002」「IMG」:「https://p3.pstatp.com/list/190x124/pgc-image/RsKTsENA98VCW4」「タイトル」:「ティーチへつらう害カーペンターにアメリカ帝国主義」「詳細」:「メディア・ウェブコメント⋅⋅40 20分前。」
}、{
  「上記のid」:「0003」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/RsA9sUaCBjDIlv」「タイトル」:狂気「の杭州の少年で3日間、毎晩」「!お母さんのことができのみ非表示単位を怖がっ:ネットには3つのコースの悪夢の家族「になった「:」」詳細。中国青年ネットワーク社会のコメント⋅⋅456 49分前に」
}、{
  「言及したID上記の」:「0004」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/24d23182556449f38634d2000abc4340」「タイトル」:「イタリアは、他の国を侮辱回します」「詳細」:「国際グローバル・タイムズ⋅1684件のコメント⋅57分前。」
}、{
  「上記のid」:「0005」「IMG」:「https://p9.pstatp.com/list/190x124/pgc-image/39ac6fcc7efb4f2787bba47fdfc92fd3」「タイトルは」:「彼は前後に1日4時間だった、その後解散しますちょうど私の側「を参照するには「:」」詳細。ライフ・ウィークの物語のコメント⋅⋅224 1時間前に」
}、{
  "上記のID": "0006"  "IMG": "https://p9.pstatp.com/list/190x124/pgc-image/RsFxNEQ3reP1EU"  "タイトル": "レイセオン山の壁、火" 「詳細「:」ソーシャル・中国青年網のコメント⋅1時間前7178⋅」。
}、{
  「上記のid」:「0007」「IMG」:「https://p3.pstatp.com/list/190x124/pgc-image/2c1ad4cd170746399d8f522e972ad0ce」「タイトル」:「ヒュー・キジン:最近の中国の人々の経験、講演について「中国とロシアの関係の実際の外観」詳細「:」1時間前国際グローバル・タイムズ⋅272件のコメント⋅」。
}、{
  「上記のID」:「0008」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/RrPOLxP9rVxgsc」「タイトル」:「衛星は、中国の外国人専門家が砂漠を驚かせている掃引" "詳細":"科学のWebコメント⋅⋅332 1時間前"。
}、{
  「上記のid」:「0009」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/RsM9OKXIW9qlr7」「タイトル」:「36年の患者の死の後は新しい王冠、王のGFを排出しました。再発は結論「にジャンプすべきではない「:」498時間前に健康北京ニュース⋅⋅1件のコメント"」詳細
}、{
  「上記のID」:「0010」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/RrqzoRW2Woiyc2」「タイトル」:「疫病は彼女のボーイフレンドの家に閉じ込められたので、私の将来の母とほとんどの姉妹「などで「:」」ディテール。1331件のコメント⋅1時間前の話新華クライアント⋅」
}、{
  「上記のid」:「0011」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/R6cefahHX9doHC」「タイトル」:「あなたは女性に良い印象を持って、仲良くなりますいくつかのボディランゲージは、「知らない愚かなことはありません「7時間前に感情的な光明⋅⋅2件のコメント:「」」の詳細を
}、{
  「上記のid」:「0012」「IMG」:「https://p9.pstatp.com/list/190x124/pgc-image/bf35da78f8334e6c8fd49f2d8327929c、」「タイトル」:338万たくさんの価格肉屋」「魔法の紛争!」 Jingdongは破れ、どのようにドラマを最後までこの「相互ギャング」「? ディテール」:旧「グローバルピープル誌テクノロジーのコメント⋅⋅193 2時間、」 "
}、{
  「上記のid」:「0013」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/RsJlLTNGJpHoc2」「タイトル」:「?カニカマあなたがそれを食べるべきか、」「詳細」:「グルメ中国経済ネット⋅10件のコメント⋅2時間前。」
}、{
  「上記のid」:「0014」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/R6gvn63BhYjmsE」「タイトル」:「?火鍋の実験から、それは安全ではあなたを教えて。」「詳細」:「社会光明⋅7件のコメント⋅2時間前。」
}、{
  「上記のid」:「0015」「IMG」:「https://p3.pstatp.com/list/190x124/pgc-image/12800b57142d4d62b3716cbeac28f43a」「タイトル」:「一緒に積み重ね男性と女性兵士のノルウェー軍共学寮内部被ばく「で「:」軍事グローバルタイムズ⋅2033件のコメント⋅2時間前"」の詳細。
}、{
  「上記のid」:「0016」「IMG」:「https://p3.pstatp.com/list/190x124/pgc-image/bdb2ee48eefa4cfc97ea873a2faf886b」「タイトル」:台湾独立「ハードコアサポーターになりました、「彼がいました」 「緑」に台南は「旗を上げ詳細」「:」政治政協委員のネットワーク⋅209件のコメント⋅2時間前に」。
}、{
  「上記のid」:「0017」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/Rqw40HXFGgGYUy」「タイトル」:「中国の古代図書100の古典的な引用符」「詳細":"明るいWebが⋅⋅216 2時間前コメント」。
}、{
  「上記のid」:「0018」「IMG」:「https://p3.pstatp.com/list/190x124/pgc-image/Rrgh96rCzFdkJ3」「タイトル」:「リリース権限が|新しいクラウン肺炎の患者がリハビリテーションプログラムに排出しました「」詳細「:」健康健康ニュース⋅コメント⋅2時間前に」。
}、{
  「上記ID」:「0019」「IMG」:「https://p3.pstatp.com/list/190x124/pgc-image/RrsrYQtD4ZRhH9」「タイトル」:「すべての中小零細企業@:状態のサポートは、来リアルマネー「は」詳細「:」2745⋅2時間前財務人々のコメント⋅」。
}、{
  「上記のid」:「0020」「IMG」:「https://p1.pstatp.com/list/190x124/pgc-image/RmqmgpaAQqiQK8」「タイトル」:「ボーイズマイクロ手紙はあなたを聞いて:」やって"高いEQの女の子がで答えている「」詳細「:」3時間前感情的な光明⋅14件のコメント⋅ " 
}]

5.src / index.htmlを

<!DOCTYPE HTML>
<HTML LANG = "EN">
<ヘッド>
  <メタ文字セット= "UTF-8">
  <タイトル>ドキュメント</ TITLE>
  <リンクのrel = "スタイルシート" のhref = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
  ます。<script type = "text / javascriptの" SRC = "index.js"> </ SCRIPT>
</ head>の
<身体>
  <H1>今日のニュースの見出し</ H1>
  <DIV ID = "アプリケーション" クラス= "コンテナ"> </ div>
</ BODY>
  ます。<script type = "text / javascriptの">
  window.onload =()=> {
    myRequest( "GET"、 'のhttp:// localhostを:8888 /函数= 5?'、handleUpdata)
    window.onscroll =(EV)=> {
      聞かせてscrollTopスプライト= document.documentElement.scrollTop
      scrollHeight = document.documentElement.scrollHeightてみましょう
      windowHeight = document.documentElement.clientHeightてみましょう。
      console.log(scrollTopスプライト)
      もし(scrollTopスプライト+ windowHeight == scrollHeight)myRequest( "GET"、 'のhttp:// localhostを:8888 /函数= 2?'、handleUpdata)
    }
  }
  関数handleUpdata(データ){
    {(I ++; I <data.length I = 0せて)のために
      app.innerHTML + = `
        <DIVクラス= "行">
          <DIVクラス= "COL-XS-4 COL-MD-3">
            <HREF = "javascriptの:;" クラス=「サムネイル」>
              <IMG SRC = "$ {DATA [i]は.IMG}">
            </a>の
          </ div>
          <DIVクラス= "COL-XS-8 COL-MD-9">
            <H2> <a href="javascript:;"> $ {データ[I] .TITLE} </a>の</ H2>
            <P> <a href="javascript:;"> $ {DATA [i]が.detail} </a>の</ P>
          </ div>
        </ div>
      `
    }
  }
  </ SCRIPT>
</ HTML>

6.src / index.js

関数myRequest(メソッド、URL、CB){
  聞かせてXHR = 新しいXMLHttpRequestを()
  xhr.open(メソッド、URL)
  xhr.send()
  xhr.onreadystatechange =()=> {
     場合(xhr.readyState == 4 ){
      せステータス = xhr.status
       場合(ステータス> = 200の&&ステータス<300の||ステータス== 304 ){
        CB(JSON.parse(xhr.responseText))
      }
    }
  }
}

 

おすすめ

転載: www.cnblogs.com/JunLan/p/12424191.html