Express+Ejsは簡単なWebServerを実現します.


最近node.jsを見ています.公式の初歩教程を読んで、自分が何かを苦しめるべきだと思います.まずexpress+ejsで超簡単なwebserverを実現します.まずnodejs入門級の簡単な実戦プロジェクトの住所を紹介します.入門レベルの上手さに適しています.https://github.com/nswbmw/N-b...
考え方
自分はバックエンド関連の言語開発の実戦経験がないので、nodejsを勉強する過程で、もっと多いのは構想と理念の学習と理解で、言語はただ道具です.でも、初心者のために、自分の考えはきっと一番いい実践ではないと思います.
簡単なwebsererを実現するには、必ず以下のいくつかのものが必要です.
  • :routerは、異なる要求経路に対応するイベントハンドラ
  • を配信する.
  • routerHandlerは、それぞれ対応するイベント
  • を処理する.
  • views処理後に戻ってきたテンプレートです.ここで選択されたのはサービス端末レンダリング
  • です.
    構想ができたら、まずexpressとejsをインストールして、対応ディレクトリの下に切り替えます.npm i express ejsでファイルディレクトリを作成します.
    MyServer
        |__index.js
        |__routers
        |   |__index.js
        |   |__users.js
        |__views
        |   |__users.ejs
        |__node_modules
        |__package.json
  • index.js:は、入口ファイルとして、ルートとしても利用されています.
  • routers:は、異なる経路に対応するイベントハンドラ
  • を格納する.
  • views:にテンプレート
  • を格納する.
    expressとejsについては、オンラインドキュメントを使うのに十分です.
    1.index.js
    const path = require("path");
    
    const express = require("express");
    const app = express();
    
    const indexRouter = require("./routers/index");
    const usersRouter = require("./routers/users");
    
    app .set("views", path.join(__dirname, "views"))
        .set("view engine", "ejs")
        .use("/",indexRouter)
        .use("/users", usersRouter)
        .listen(666, "127.0.0.1");
  • path: pathはnodejsコアモジュールの一つで、主にファイルパスとディレクトリに関するデータを処理しています.以下のpath.jin方法はパラメータの中のpathセグメントのスティッチングを規範化したファイルパスとして処理しています.
  • __dirname expressはNode.jsプラットフォームに基づいて、急速に開放的で、極めて簡単なウェブ開発フレームワークです.ここで使うのはexpressの最も典型的な応用方式で、expressは一つのfunction(req、res、next)を返します.nextはともかく、ap.useは最初のパラメータに対する対応経路(最初のパラメータがパスであれば)を簡単に理解し、対応するfunctionを実行します.以下のアプリ.set方法はいくつかの属性を設定します.http://www.expressjs.com.cn/4...;ここでは、レスポンスの参照view(テンプレート)と対応するview engine(テンプレートエンジン)が設定されています.
  • express:は、それぞれ異なる要求に対応する処理関数を導入して、呼び出しを容易にする.
  • 2.routers/
  • index.js
  • const express = require("express");
    const router = express.Router();
    
    router.get("/", function(req, res){
        res.send("express is started! this is index!");
    })
    
    module.exports = router;
  • users.js
  • const express = require("express");
    const router = express.Router();
    
    router.get("/:name", function(req, res){
        res.render("users",{
            name: req.params.name,
            id: req.query.id
        });
    })
    
    module.exports = router;
    ここの考え方も簡単で、expressを導入して、routerミドルウェアを呼び出します.indexRouter/usersRouter::これは実はプレースホルダです./:nameの前のフィールドの値を表しています./を通じて(通って)アクセスすればrequset.paramsです.ここで127.0.0.1:666/users/laoliを通じて(通って)取った値はrequset.params.nameです.laoli:req.queryの後のパラメータ、例えば?にアクセスするとき、127.0.0.1:666/users/laoli?age=18を通じて取った値はreq.query.ageです.18:テンプレートを取って、後のocjectのパラメータ値をテンプレートレンダリングに入れて返します.
    3.users.ejsres.render idnex ejsテンプレートファイル、ejsは簡単で使いやすいです.ドキュメントも多いです.http://ejs.co/
    以上、完了したらコマンドラインで

    hello, , your ID is

    を実行し、ページアクセスnode index.jsは次のページを得る.
    その中の要求と応答は以下の通りである.簡単なwebserver演算式が実行されたが、もちろん、フォーム提出の処理など、いくつかの簡単な機能が追加され、ajaxは非同期で提出され、応答することができる.これはこれから試してみます.