0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

expressの備忘

Last updated at Posted at 2024-03-21

express

参考

インストール

# package.jsonの作成
# entry point: (index.js) はお好みで。"app.js" もよくある。
npm init

# --save でpackage.jsonに追加されるので、後で構築しやすくなる。
# これはモジュールのみnode_modulesにインストールされる
npm install express --save

Hello Wolrd サンプル

  • 000.HelloWolrd_index.js

    const express = require('express')
    const app = express()
    const port = 3000
    
    app.get('/', (req, res) => res.send('Hello World!'))
    app.listen(port, () => console.log(`Example app listening on port ${port}`))
    
  • 実行

    # 以下を実行後ブラウザで、http://localhost:3000 でアクセスできる。
    node 000.HelloWolrd_index.js
    

Express application generator

Express アプリケーションのスケルトンを作成できる。

  • generatorの実行方法

    • Node.js 8.2.0以降

      npx express-generator
      
    • Node.js 8.2.0以前

      # express-generatorをインストールする
      npm install express-generator --save
      
      # 以後はexpressコマンド
      # npm "-g" でグローバルにインストールしていない場合は、
      # node_moudles\.bin\express を使用する。
      express -h
      
  • generatorの使い方

    # ビューテンプレートとしてpugを使用してmyappを作成
    express --view=pug myapp
    
    # インストール
    cd myapp
    npm install
    
    # 実行(Mac)
    DEBUG=myapp:* npm start
    # 実行(Win)
    SET DEBUG=myapp:* & npm start
    
    • "npm start" はそのフォルダのpackage.json内の"scripts"を参照する。
      "start": "node ./bin/www" となっているので、実際は"./bin/www" が実行される。

ルーティング(Routing)

  • 基本構造
app.METHOD(PATH, HANDLER)
  • app : expressのインスタンス

  • METHOD : post, get, put ...(HTTPメソッドを小文字にしたもの)

  • PATH : サーバ上のパス(URLのパス?)

  • HANDLER: URLがPATHとマッチしたしたときに実行するメソッド

  • サンプル

// "/" にアクセスされたら、"Hello World!" を返す
app.get('/', function(req, res){
  res.send('Hello World!')
})

// "/" への POST リクエスト
app.post('/', function(req, res){
  res.send('Got a POST request')
})

// "/user" への PUT リクエスト
app.put('/user', function(req, res){
  res.send('Got a PUT request at /user')
})

// "/user" への DELETE リクエスト
app.delete('/user', function(req, res){
  res.send('Got a DELETE request at /user')
})

静的なファイル(static files)

画像やCSSやjavascriptなどの扱い方。
組み込みミドルウェアの "static" を使用する。

  • 基本構造

    express.static(root, [options])
    
    • root: 静的ファイルを扱うディレクトリ
  • サンプル

    // 以下を指定すると "public" フォルダが静的ファイルを扱う。
    app.use(express.static('public'))
    
    // 以下のようにアクセスできるようになる
    // public\image\sample.jpg  => http://localhost:3000/image/sample.jpg
    // public\css\style.css     => http://localhost:3000/css\style.css
    // public\js\jquery.js      => http://localhost:3000/js\jquery.js
    
    
    // 実際のフォルダ名とURLを変えたいとき
    app.use('/static', express.static('public'))
    
    // 以下のようにアクセスできるようになる
    // public\image\sample.jpg  => http://localhost:3000/static/image/sample.jpg
    
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?