express란 node.js의 웹 프레임워크이다. node.js 자체를 프레임워크로 생각하지만 사실 대중적으로 express를 주로 사용한다. node.js 자체 만으로 서버 구축이 가능하지만 express의 여러 메서드를 활용하여 좀 더 간결하고 편리하게 서버 구축이 가능하다. express는 라우팅 기능과 미들웨어 사용에 있어 최적화 되어 있다.
프로젝트 디렉토리 생성
$ mkdir my-project
디렉토리 이동
$ cd my-project
npm 프로젝트 초기화: node & npm 설치 필수!
-y
플래그는 모두 동의 처리$ npm init -y
express 설치
--save
: 프로젝트 단위 설치$ npm install express --save
app.js
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
$ node app.js
router()
를 사용하여 간결한 코드로 라우팅이 가능하다.const express = require("express")
const app = express()
app.route('/books')
.get((req, res) => {
res.send('Get a random book')
})
.post((req, res) => {
res.send('Add a book')
})
.put((req, res) => {
res.send('Update the book')
})
app.js
const express = require("express")
const app = express()
const userRouter = require("./userRouter")
const bookRouter = require("./bookRouter")
app.use("/users", userRouter)
app.use("/books", bookRouter)
userRouter.js
users/signup
, users/signin
의 경로에 응답한다.const express = require("express")
const router = express.Router()
router.post("/signup", (req, res) => {
console.log("SignUp Success")
})
router.post("/signin", (req, res) => {
console.log("SignIn Success")
})
module.exports = router
bookRouter.js
books
, books/:id
의 경로에 응답한다.const express = require("express")
const router = express.Router()
router.get("", (req, res) => {
console.log("Get all books")
})
router.get("/:id", (req, res) => {
const id = req.params.id
console.log(`Get id: ${id} book.`)
})
module.exports = router