2
1

More than 3 years have passed since last update.

サクッとnode.jsでHTTPリクエストを受け取るAPIを作る

Last updated at Posted at 2019-11-15

はじめに

今回はNode.jsのフレームワークであるExpressでHTTPリクエストを受け取るアプリケーション?を作りたいと思います。
利用用途としては

  • しっかりリクエスト送れてるの?
  • Expressとかnode.jsでAPIを作ってみたい

といったことが想定されます。私の場合は主に、というか9割前者ですね。JMETERでリクエストが正しく送れているか確認したかっただけです。

実装

下準備

まず以下のコマンドを実行します。この時、プロジェクトのディレクトリ内で行いましょう。

> npm init

あとはダイアログに従い、入力するだけです。
するとpackage.jsonが作成されると思います。

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

> npm install express -save

このコマンドをたたけばいろいろダウンロードされ、環境が整います。

実行するファイルを作る

index.js
const express = require('express')
const app = express()
// body-parserのおまじない
// 参照:https://expressjs.com/ja/4x/api.html#req.body
const bodyParser = require('body-parser') 
app.use(bodyParser.urlencoded({ extended: true }))

app.listen(3000)
app.get('/get', function (req, res) {
    res.send('Receive Get request')
    console.log('GETリクエストを受け取りました')
})
app.post('/post', function (req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.send('Receive POST request as ' + req.body.text)
    console.log('POSTリクエストを受け取りました')
    console.log(req.body)
})

body-parserのおまじない これかなり重要です。これがないとreq.bodyでは表示されません。

実行してみよう

ここではVScodeのREST Clientを使います。

GETリクエスト

GET http://localhost:3000/get

返ってくるレスポンス

HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Content-Length: 19
ETag: W/"13-XJXW/hqJ3os48dLZM0f0yOQl3GA"
Date: Fri, 15 Nov 2019 16:02:55 GMT
Connection: close

Receive Get request

POSTリクエスト

POST http://localhost:3000/post
Content-Type:application/x-www-form-urlencoded

text=テスト送信

返ってくるレスポンス

HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/plain; charset=utf-8
Content-Length: 38
ETag: W/"26-i+FQlfv64fSmWg1IEMiZfpdw9eY"
Date: Fri, 15 Nov 2019 16:03:59 GMT
Connection: close

Receive POST request asテスト送信

注釈

res.send('Receive POST request as ' + req.body.text)

のtextの部分を変えることでPOSTリクエストの

text=テスト送信

のtextの部分を変えることができます。

まとめ

ほかにもjson形式のPOSTリクエストを受け取るとかできますが、今回は省略。

参考

https://qiita.com/kefian1go/items/198d9da2240846e28a48
https://expressjs.com/ja/4x/api.html#req.body

2
1
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
2
1