public 정적 파일을 위한 폴더로서 자바스크립트 파일, 이미지 파일, CSS 등을 포함
routes 라우팅 리소스 별로 모듈을 만들어 라우팅 로직을 구현 클라이언트에서 요청 별로 어떤 로직을 수행할지 정해놓은 파일 (java - Controller 역할) views request 요청에 대한 로직을 처리한 후 클라이언트에 응답을 보낼 때 html 코드로 변환해서 반환하는 파일을 정의한 폴더
app.js express 설정 정보가 담겨있는 파일
package.json 프로그램 이름, 버전, 모듈 등 기술
routes/index.js
기본적으로 /로 접근한 경우 화면(/views/index.jade)을 보여주기 위해 res.render를 사용하고 있는 걸 확인할 수 있다.
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
1. router.get 추가 (/api/get/demo - GET 방식)
status()의 괄호 안에는 응답하고자 하는 HTTP 상태 코드 입력 json()의 괄호 안에는 응답하고자 하는 json형식의 데이터 입력
router.get('/api/get/demo', function(req, res) {
res.status(200).json({
"message" : "call get api demo"
});
});
2. router.post 추가 (/api/post/demo - POST 방식)
router.post('/api/post/demo', function(req, res) {
res.status(200).json({
"message" : "call post api demo"
});
});
전체 코드 (routes/index.js)
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
router.get('/api/get/demo', function(req, res) {
res.status(200).json({
"message" : "call get api demo"
});
});
router.post('/api/post/demo', function(req, res) {
res.status(200).json({
"message" : "call post api demo"
});
});
module.exports = router;
3. 구동 중인 서버 종료 후 재시작
화면의 파일들을 수정하면 바로 적용되지만, 서버단의 소스는 구동 중인 시스템을 재시작하여야 한다.