[CS] Node.js Express Day-31
Express.jsはノードです.js環境でWebサーバ、またはAPIサーバを作成するための人気フレームワーク.
Expressフレームワークはnpmでダウンロードでき、HTTPモジュールで作成されたフレームワークとは異なり、独自のルータやミドルウェアの追加に便利です.
メソッドとURL(/lower、/upperなど)を使用してブレークポイントを作成することをルート(Routing)と呼びます.
ex)純ノード.例
ミドルウェアは、リクエストに必要な機能を追加したり、問題を発見した部分を消去したりすることができます.ミッドレンジソフトウェアはExpressの最大の利点の一つです.
すべてのリクエストのurlまたはメソッドをチェックする場合、 のPOST要求等を含む本体(負荷)を構築する場合、 .すべての要求/応答にCORSヘッダを付ける必要がある場合、 要求ヘッダにユーザ認証情報が含む場合、 .
ex)純ノード.例
ex)純ノード.jsでは,ヘッダを毎回再定義し,OPTIONSメソッドのルーティングも実現しなければならない.
ex)corsモジュールによる処理の簡素化
基本的な文法を理解してみましょう.
Expressフレームワークはnpmでダウンロードでき、HTTPモジュールで作成されたフレームワークとは異なり、独自のルータやミドルウェアの追加に便利です.
ルーティング:メソッドとURLによるブランチ(Routing)
メソッドとURL(/lower、/upperなど)を使用してブレークポイントを作成することをルート(Routing)と呼びます.
ex)純ノード.例
const requestHandler = (req, res) => {
if(req.url === '/lower') {
if (req.method === 'GET') {
res.end(data)
} else if (req.method === 'POST') {
req.on('data', (req, res) => {
// do something ...
})
}
}
}
ex)Expressルータの例const router = express.Router()
router.get('/lower', (req, res) =>{
res.send(data)
})
router.post('/lower', (req, res) =>{
// do something
})
Middleware
ミドルウェアは、リクエストに必要な機能を追加したり、問題を発見した部分を消去したりすることができます.ミッドレンジソフトウェアはExpressの最大の利点の一つです.
常用ミドルウェア
構造化POST要求等を含む負荷の場合
ex)純ノード.例
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
// body 변수에는 문자열 형태로 payload가 담겨져 있습니다.
});
ex)bodyParserを使用して要求されたデータをjson形式に変換するconst jsonParser = express.json()
// 생략
app.post('/api/users', jsonParser, function (req, res) {
// req.body에는 JSON의 형태로 payload가 담겨져 있습니다.
})
Expressでは、CORS処理をかなり容易に行うことができる。
ex)純ノード.jsでは,ヘッダを毎回再定義し,OPTIONSメソッドのルーティングも実現しなければならない.
const defaultCorsHeader = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Accept',
'Access-Control-Max-Age': 10
};
// 생략
if (req.method === 'OPTIONS') {
res.writeHead(201, defaultCorsHeader);
res.end()
}
でもエクスプレスですjsを用いてもよいし、corsミドルウェアを用いて簡単な処理を行ってもよい.ex)corsモジュールによる処理の簡素化
const cors = require('cors')
// 생략
app.use(cors()) // 모든 요청에 대해 CORS 허용
ミドルウェアの動作原理を理解する
基本的な文法を理解してみましょう.
var express = require('express');
var app = express();
app.get('/', function(req, res, next){
next();
})
app.listen(3000);
req、resは(request、response)、nextは次のミドルウェアを実行します.上記の例では、ミドルウェア内部では何も実行されず、next()を介して次のミドルウェアにデータが転送される.Reference
この問題について([CS] Node.js Express Day-31), 我々は、より多くの情報をここで見つけました https://velog.io/@cptkuk91/CS58テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol