안녕하세요 익스프레스입니다!

"최근에 Express를 배우기 시작했는데 'Hello, Express!'라는 말 없이 Express 여행을 시작하는 나는 누구일까요?"

Express는 JavaScript를 사용하여 서버 측 코드를 작성하는 데 도움이 되는 런타임 환경인 Node.js용 웹 애플리케이션 프레임워크입니다.

첫 번째 단계
터미널에서 yarn add express nodemon를 실행하여 expressnodemon를 프로젝트에 추가합니다.

참고: nodemon는 앱을 변경할 때마다 서버를 다시 시작하는 도구일 뿐입니다. nodemon 가 없으면 앱에 대한 변경 사항을 보고 싶을 때마다 서버를 수동으로 다시 시작해야 합니다.

// import express module 
const express = require("express");

// create an express app
let app = express();

/* TODO */

// run the app server on port 3000
app.listen(3000, ()=>{
    console.log("your server is running on port 3000")
});


이 몇 줄의 코드는 포트app를 수신하는 익스프레스3000를 만드는 것 외에는 아무 것도 하지 않습니다.

첫 번째 줄은 내장 Node 함수require()를 사용하여 express 모듈을 가져와 앱을 만드는 데 사용할 수 있습니다.

모듈은 require() 를 사용하여 다른 코드로 가져올 수 있는 함수를 내보내는 JavaScript 파일일 뿐입니다.

다음과 같이 rectanglearea() 함수를 모두 내보내는 모듈perimeter()이 있다고 가정해 보겠습니다.

// rectangle.js
module.exports = {
  area :     (length, width) =>     length * width,
  perimeter: (length, width) => 2 * length + 2 * width
}

rectangle 모듈을 다음과 같이 다른 코드로 가져와 사용할 수 있습니다.

// Note that we have to specify the path to rectangle.js
const rect = require("./rectangle");

// Now we can easily use area() and perimeter() from rectangle.js 
console.log(rect.area(3, 5))  // 15
console.log(rect.perimeter(3, 5)) // 16


그리고 express는 모듈이므로 코드로 가져올 수 있습니다.

// import express module 
const express = require("express");

// create an express app
let app = express();


이제 터미널에서 nodemon app.js를 사용하여 서버를 실행하려고 하면 http://localhost:3000/ (앱이 수신 대기 중인 포트)에 Not GET/오류가 표시됩니다.

루트 경로인 app에 대한 get 요청을 수신할 때 무엇을 해야 하는지 아직 / 말하지 않았기 때문에 이는 의미가 있습니다. 우리는 app 포트 3000'을 듣는 것을 제외하고 실제로 지금까지 아무 것도 하라고 말하지 않았습니다. 이제 이 문제를 해결해 보겠습니다.

라우팅
app가 HTTP 동사( GET , POST , PUT , DELETE 등)을 수신하면 다음에 어디로 가야 할지 알아야 합니다. 그렇지 않으면 길을 잃습니다.
app에 경로를 추가하는 것은 지도를 제공하는 것과 같습니다. 요청을 받을 때마다 해당 지도를 확인하여 선택할 경로를 결정합니다. 그리고 지도에 경로가 없는 요청을 보내면 app "[경로]"를 가져올 수 없습니다.

코드에서 어떻게 보이는지 봅시다.

// router.js
const express = require("express")
// import Router from express
let routes = express.Router();

// a route to the root path
routes.get("/", (req, res)=>{
   res.send("Hello, Express!")
})
// a route to home
routes.get("/home", (req, res)=>{
    res.send("Home sweet home")
})
module.exports = routes


이제 두 개의 경로가 있는 지도가 있습니다.

1- A route to / : "Hello, Express!"를 보냅니다. 응답.
2- A route to /home : "Home sweet home"을 보냅니다.

그 지도를 app 에 주자.

// import express module 
const express = require("express");
// import routes module
const routes  = require("./routes");

// create an express app
let app = express();

// let app use routes
app.use(routes)

// run the app server on port 3000
app.listen(3000, ()=>{
    console.log("your server is running on port 3000")
});


이제 우리는 2개만 있는 아주 작은app을 가지고 있습니다.
http://localhost:3000/ : "Hello, Express!"가 표시됩니다.
http://localhost:3000/home/ : "홈 스위트 홈"을 표시합니다.

그게 다야
읽어 주셔서 감사합니다.

좋은 웹페이지 즐겨찾기