tech.chakapoko.com
Home / Node.js / Express

[Node.js][Express]リクエストからパラメータを取得する・POSTされたデータを取得する

クエリパラメータを取得する

クエリパラメータを取得するには req.query を使います。

const express = require('express');

const app = express();

app.get('/hello', (req, res) => {
    res.send('Hello ' + req.query.name);
});

app.listen('3000', () => {
    console.log('Application started');
});
$ curl 'http://localhost:3000/hello?name=Suzuki'
Hello Suzuki

パスパラメータを取得する

リクエストされたパスからパラメータを取得するには req.params を使います。

const express = require('express');

const app = express();

app.get('/hello/:name', (req, res) => {
    res.send('Hello ' + req.params.name);
});

app.listen('3000', () => {
    console.log('Application started');
});
$ curl 'http://localhost:3000/hello/Suzuki'
Hello Suzuki

POSTされたデータを取得する

body-parserのインストール

POSTリクエストで渡されたボディのデータを利用するには body-parser モジュールが必要です。

body-parser はnpmからインストールできます。

$ npm install --save body-parser

Content-Typeapplication/x-www-form-urlencoded のデータを取得する

bodyParser.urlencoded を使います。

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.urlencoded({ extended: true }));

app.post('/hello', (req, res) => {
    res.send('Hello ' + req.body.name);
});

app.listen('3000', () => {
    console.log('Application started');
});
$ curl -X POST --data 'name=Suzuki' http://localhost:3000/hello
Hello Suzuki

Content-Typeapplication/json のデータを取得する

Jsonで渡されたPOSTデータを取得するには bodyParser.json を利用します。

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.json);

app.post('/hello', (req, res) => {
    res.send('Hello ' + req.body.name);
});

app.listen('3000', () => {
    console.log('Application started');
});
$ curl -X POST -H 'Content-Type: application/json; charset=UTF-8' http://localhost:3000/hello -d '{"name": "Suzuki"}'
Hello Suzuki