2021年1月7日 星期四

重新踏入網頁開發 (6) - Express - 1

 Express

    Fast, unopinionated, minimalist web framework for Node.js,這是 Express 的自我介紹。這裡的 unopinionated 之於 opinionated 較為信任開發者,所以你可以擁有很多作法去達到相同的目的,例如像 PERL/PHP。而 opinionated 的 software 則會只提供一個方法去達到目的,例如撰寫維基百科。沒寫過維基百科,但很顯然維基百科有他的格式存在,而格式都是維基百科的設計師所規定的。他不會讓你自由地的操作 HTML 把它當成你的部落格在寫,你只能照他的方式去更新內容。
    安裝
    npm install express

 Express - Routing

    之前 Routing 的實作是用原生 module: http、url 和自製的 dict 去實現,現在用 express 來達成。
  • server.js
       import express from 'express'
    
       // 建立 express 這 module
       var app = express()
       const port = 8888
    
       // This responds a GET request for the homepage
       app.get('/', (req, res) => {
          console.log("Got a GET request for the homepage");
          res.send('Hello GET!\n')
       })
    
       // This responds a POST request for the homepage
       app.post('/', function (req, res) {
          console.log("Got a POST request for the homepage");
          res.send('Hello POST\n');
       })
    
       // This responds a GET request for the /list_user page.
       app.get('/list_user', function (req, res) {
          console.log("Got a GET request for /list_user");
          res.send('Page Listing\n');
       })
    
       var server = app.listen(port, function () {
          var host = server.address().address
          var port = server.address().port
          console.log("Example app listening at http://%s:%s", host, port)
       })
  • Testing ( curl筆記 )
        $ curl -X GET http://localhost:8888/
        Hello GET!
        $ curl -X POST http://localhost:8888/
        Hello POST
        $ curl -X GET http://localhost:8888/list_user
        Page Listing
    第一個參數,字串支援 Regular Expression
  • server.js
       // This responds a GET request for ab*cd, abxcd, ab123cd, and so on
       app.get('/ab*cd', function(req, res) {   
          console.log("Got a GET request for /ab*cd");
          res.send('Page Pattern Match\n');
       })
    
       // This responds a GET request for book1, book2 and book3
       app.get('/book[123]', function(req, res) {   
          console.log("Got a GET request for /ab*cd");
          res.send('Page Pattern Match\n');
       })
  • Testing ( curl筆記 )
        $ curl -X GET http://localhost:8888/ab123cd
        Page Pattern Match
    
        $ curl -X GET http://localhost:8888/ab123456cd
        Page Pattern Match
    
        $ curl -X GET http://localhost:8888/book1
        Page Pattern Match
    
        $ curl -X GET http://localhost:8888/book2
        Page Pattern Match
    
        $ curl -X GET http://localhost:8888/book3
        Page Pattern Match
    
        $ curl -X GET http://localhost:8888/book4
        <!DOCTYPE html>
        <html lang="en">
        <head>
        <meta charset="utf-8">
        <title>Error</title>
        </head>
        <body>
        <pre>Cannot GET /book4</pre>
        </body>
        </html>
上一篇 :
下一篇 :
參考資料 :


0 意見:

張貼留言

Popular Posts