Expressの使用


ルート
ルーティングとは、対応するuriのクライアント要求の適切な応答を組み合わせた動作を指す.
この間、nodejs点、routing点、pathname 설정点、content-type 지정点などを繰り返す必要がある場合、end 설정点はルーティング動作をexpress点に簡略化する.
// node.js ... /////////////////////////////////
///////////////////////////////////////////////

const http = require('http');
const url = require('url');

const server = http.createServer((req, res) => {
  const { query, pathname } = url.parse(req.url, true);

  // pathname 작업
  if (pathname === '/') {
    // content-type 설정
    res.writeHead(200, { 'Content-type': 'text/html' });
    res.end('<h1>hello-world<h1>');

  }  
server.listen(8000, '127.0.0.1', () => {
  console.log('Listening to requests on port 8000');
}); 
  

// express.js ... /////////////////////////////////
//////////////////////////////////////////////////
  
const express = require('express')
const app = express() // = require('http').createServer()

app.get('/', function(req, res) {
	res.send('<h1>hello-world<h1>')
}) 
// content-type, charset, res.status 등을 일일이 작업할 필요가 없다.   
  
app.listen(8000, '127.0.0.1', () => {
  console.log('Listening to requests on port 8000');
}); 

middlewareapp.method(path, handler)のすべてのexpressコールは非同期で移動する.関数呼び出し順序はサーバの動作に大きな影響を及ぼし、methodは3番目のパラメータmiddlewareによって作成されやすい.
const express = require("express");
const app = express(); // = require('http').createServer()

function a(req, res, next) {
  console.log(1);
  next();
}

function b(req, res, next) {
  console.log(2);
  next();
}

function c(req, res, next) {
  console.log(3);
}

function d(req, res, next) {
  console.log(4);
}

app.use("/", a, b, c, d);
// 호출 시에 console에 1,2,3,4가 호출되게 했다. 
// c의 경우 next를 사용하지 않았기에 3 까지만 호출이 된다.

app.listen(8000, "127.0.0.1", () => {
  console.log("Listening to requests on port 8000");
});
next()の最大の利点は、エラーの確認と解決速度が非常に速いことです.各呼び出し関数に明確なmiddlewareがある場合、path値のどの関数に問題があるかはすぐにわかります.
また、error-handlingによって要求されたclientまたはpayloadの情報は、ユーザの認証情報またはサードパーティミドルウェアライブラリによって容易に見つけることができる.
get, post, put, patch, delete
サーバ領域で最も一般的なhttprequestメソッドを使用して、各ロールを分割します.
  • Creating= post
  • Reading = get
  • Updating = put, patch
  • Deleting = delete
  • ここで重要な違いは、corsおよびputであり、patchが既存のデータを局所的に修正する意図がある場合、putは、既存のデータを新しいデータに完全に上書きすることを意味する.したがって、データ破損を解消するためには、状況に応じて適切なpatchを使用する必要があります.
    {nama: 'beberiche' , age: 30, job: 'developer', hobbies: ['driving', 'game'] }
    
    // 만약 직업을 수정하게 된다면...
    
    // put 설정 시 
    {job: 'teacher'}
    
    // patch 설정 시
    {nama: 'beberiche' , age: 30, job: 'teacher', hobbies: ['driving', 'game'] }