Node.jsルートの実現方法

3122 ワード

私たちは普段の仕事の中で、バックグラウンドの開発に関わっていますが、ルートは基本的に私たちの最初の建設が必要です。ルートはまだ重要です。
じゃ、何がルートですか?簡単に例を挙げてください。ホテルのフロントに十人の客が来ました。フロントに十人の客を手配します。一人の客がホテルに着いたら、どの部屋に行くべきですか?フロントを通して手配します。ふざけるな
一つのドメイン名の下で、多くのアクセスできるアドレスがあります。これがルートです。
私たちは、ルーティングのために要求されたURLと他の必要なGETおよびPOSTパラメータを提供し、その後、ルーティングは、これらのデータに基づいて、どのコードを実行するかを決定する必要があります。
したがって、HTTP要求を確認し、そこから必要なURLとGET/POSTパラメータを抽出します。
我々が必要とするこれらのデータはいずれもrequestオブジェクトに含まれ,このオブジェクトはオンレクェスト関数の最初のパラメータ伝達として作用する。しかし、これらのデータを解析するためには、それぞれurlとquerystringモジュールである追加のNode.jsモジュールが必要です。

          url.parse(string).query
                      |
      url.parse(string).pathname   |
            |          |
            |          |
           ------ -------------------
http://localhost:8888/start?foo=bar&hello=world
                ---    -----
                 |     |
                 |     |
       querystring.parse(queryString)["foo"]  |
                      |
             querystring.parse(queryString)["hello"]
querystringモジュールでpost要求体のパラメータを解析することもできます。コードデモンストレーションがあります。
ここでコードを書いて、ブラウザが要求するURLのパスを探す前にも書いておきます。
私達は新しいserver.jsコードを作りました。

//   route()         router.js    。       
const http = require('http')
const url = require('url')

function start(route){
  function onRequest(request, response) {
    let pathName = url.parse(request.url).pathname //   url         
    console.log('Request for ' + pathName + 'received.')
    route(pathName,response)
  }
  http.createServer(onRequest).listen(8888)
  console.log('Server has started')
}
exports.start = start

次にrouter.jsを作成します。

//        pathname,        ,      ,  hello world
//    /index    pathname :/index
//         404
function route(pathname,response) {
  console.log('About to route a request for ' + pathname)
  response.writeHead(200, {'Content-Type' : 'text/plain'})
  if(pathname == '/') {
    response.write('Hello World')
    response.end()
  }else if(pathname == '/index'){
    response.write('pathname :/index')
    response.end()
  } else {
    response.write('404')
    response.end()
  }
  
}
exports.route = route
本当の環境はきっとこのように書くことはできなくて、このように書くのは主にルートの仕事の原理を理解するのです。
次にindex.jsを作成して、私達が作成した二つのモジュールを入れます。

const server = require('./server')
const router = require('./router')

server.start(router.route)

server下のstart方法を呼び出して、routerのroute方法を伝えます。全体のロジックが出てきます。server.jsを通じてhttpサービスを作成し、node内蔵モジュールurlを通じて現在のアクセス経路を取得し、router.jsを通じて異なるアクセス経路に対してコード操作を行います。
最終的には命令ラインを起動してnode index.jsを入力して、その後一つのurlを要求します。私たちはアプリケーション出力に対応する情報を見ます。これはHTTPサーバに対してすでにルートモジュールを使っていることを示しています。要求は経路をルーティングに伝達し、次にルーティングによって操作される。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。