「Express久しぶりに使うな〜、あれ?」
「どう書くのか忘れたー!」というときに見るものです
環境を作る
ディレクトリを作って、ターミナルでそこに移動して
npmを初期化します
npm init -y
次にExpressをインストールします
npm install--save express
これで起動できます
node .
お好みで開発に便利なnodemonも
index.js
を用意します
constexpress=require("express")constapp=express()/* 書いてあるコードはここに書いてね */app.listen(3000,()=>{console.log("listening at http://localhost:3000")})
準備完了
リクエストを捌く
GETやらPOSTやらをうけてレスポンス返そう
GET
これでブラウザで http://localhost:3000にアクセスすればHello World!
と返ってきます
app.get("/",(req,res)=>{res.send("Hello World!")})
POST
Postmanやcurlなどを使って試しましょう
これで http://localhost:3000にPOSTするとHello World!
と返ってきます
app.post("/",(req,res)=>{res.send("Hello World!")})
場所を変える
/5000trillion
とかにアクセスしたときのリクエストを捌こう
app.get("/5000trillion",(req,res)=>{res.send("5000兆円\n欲しい!")})
簡単なデータの処理
これで http://localhost:3000/5000trillion?mode=deflationにアクセスするとデフレが起きて物価が下がり、50万円で満足します50万円欲しい!
と返ってきます
ちなみに?mode=deflation
は クエリ文字列といいます
URLにちょっとデータを含めることができます
app.get("/5000trillion",(req,res)=>{if(req.query.mode==="deflation"){res.send("50万円\n欲しい!")}else{res.send("5000兆円\n欲しい!")}})
静的な場所
publicフォルダーの下を/assets
にアクセスしたときに返したいとき
こんな感じになります
http://localhost:3000/assets/logo.png<-> ./public/logo.png
app.use("/assets",express.static("./public"))
ファイル分割
ディレクトリ別に.js
ファイルを分けることもできますroute.get()
のパスを"/5000trillion"
にすると、/5000trillion/5000trillion
になるので気をつけましょう
constexpress=require("express")constroute=express.Router()route.get("/",(req,res)=>{if(req.query.mode==="deflation"){res.send("50万円\n欲しい!")}else{res.send("5000兆円\n欲しい!")}})module.exports=route
constroute=require("./5000t")app.use("/5000trillion",route)
ミドルウェア
get(...)
などの前に認証などの処理をすることができます
ログを出してみます
最後に必ずnext()
を呼び忘れないようにしましょう
そうしないと、続きが実行されません
app.use((req,res,next)=>{console.log(`[${Date.now()}] ${req.ip}${req.url}`)next()})// `/5000trillion`の下だけapp.use("/5000trillion",(req,res,next)=>{res.setHeader("powered-by","5000 trillion yen!")// ヘッダーを追加 CORSなんかもここでする ライブラリ使ったほうがいいconsole.log(`[${Date.now()}] ${req.ip}${req.url}`)next()})
おわり
「せや!Expressこんな感じやったな」というふうになったらいいな