Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8883

Expressが久しぶりで、忘れたときに見るやつ

$
0
0

「Express久しぶりに使うな〜、あれ?」

「どう書くのか忘れたー!」というときに見るものです

環境を作る

ディレクトリを作って、ターミナルでそこに移動して
npmを初期化します

npm init -y

次にExpressをインストールします

npm install--save express

これで起動できます

node .

お好みで開発に便利なnodemon

index.jsを用意します

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になるので気をつけましょう

5000t.js
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
index.js
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こんな感じやったな」というふうになったらいいな


Viewing all articles
Browse latest Browse all 8883

Trending Articles