프로그램 소스가 길어지는 것을 방지하기 위해서,
별도의 파일을 이용해서, 각 경로에 해당하는 기능을 구현하면
소스 가독성이나 유지보수가 수월해진다.
각 모듈파일의 맨 하단에 exports 를 꼭 해야 한다.
참고)
https://velog.io/@glowing0512_/express-Router-%ED%8C%8C%EC%9D%BC%EB%B6%84%EB%A6%AC
참고) 여기 게시판이 node.js 관련해서 읽을 만한게 많은 것 같다.
https://juni-dev-log.tistory.com/77
(node.js) [Part.7] 익스프레스 프로젝트를 모듈화하기 - 설정 파일 만들기
웹 서버 안의 각 기능을 별도의 파일로 분리하여 모듈로 만들면, 수정이 필요할 때 웹 서버의 메인 파일을 수정하지 않고 모델 부분만 수정해도 된다. 또 새로운 모듈을 추가할 때도 메인 파일을
juni-dev-log.tistory.com
샘플 예제1 - 3개의 파일로 나눠서 작성함
=======================================================
파일 app.js
-------------------------------------------------------
var express = require('express');
var app = express();// 서버를 생성합니다.
// 외부 파일을 가져오기.....
var board = require('./routes/sub_board');
var member = require('./routes/sub_member');
// 라우터를 설정합니다.
app.use('/board', board); // http://127.0.0.1:4000/board/list
app.use('/member', member);// http://127.0.0.1:4000/member/write
// 서버를 실행합니다.
app.listen(4000, function () {
console.log('Server running at http://127.0.0.1:4000');
});
=======================================================
파일 routes/sub_board.js
-------------------------------------------------------
// 라우터를 생성합니다.
var express = require('express');
var router = express.Router();
// 라우터를 설정합니다- 별도의 파일로 작성할 수 있음
router.get('/', function (request, response, next) {
response.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
response.write('<h1>게시판입니다 목록입니다</h1>');
response.end();
});
router.get('/list/:page', function (request, response) {
response.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
response.write('<h1>게시판입니다 목록입니다</h1>');
response.end();
});
router.get('/write', function (request, response) {
response.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
response.write('<h1>게시판입니다 글쓰기 화면입니다 </h1>');
response.end();
});
router.get('/view', function (request, response) {
response.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
response.write('<h1>게시판입니다 상세보기 화면입니다 </h1>');
response.end();
});
//마지막에 모듈을 export 시켜야 한다
module.exports=router
=======================================================
파일 routes/sub_member.js
-------------------------------------------------------
// 라우터를 생성합니다.
var express = require('express');
var router = express.Router();
// 라우터를 설정합니다- 별도의 파일로 작성할 수 있음
router.get('/', function (request, response, next) {
next();
});
router.get('/list', function (request, response) {
response.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
response.write('<h1>회원게시판입니다 목록입니다</h1>');
response.end();
});
router.get('/write', function (request, response) {
response.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
response.write('<h1>회원게시판입니다 글쓰기 화면입니다 </h1>');
response.end();
});
router.get('/view', function (request, response) {
response.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
response.write('<h1>회원게시판입니다 상세보기 화면입니다 </h1>');
response.end();
});
module.exports=router
'IT > NodeJS' 카테고리의 다른 글
IntelliJ 에서 Node 프로젝트 만들기 (0) | 2022.11.05 |
---|---|
소스 레포지토리들 (0) | 2022.11.04 |
없는 page 라우팅 처리 예제 (0) | 2022.07.18 |
URL 라우팅및 데이터 전달방식 예제들...POST 방식으로 json 형식 사용예등 (0) | 2022.07.18 |
express 사용하기 (프로젝트 만들기) (0) | 2022.07.11 |
댓글