본문 바로가기

IT/nodejs

nodejs router에 대해 알아보자

반응형

router는 설정한 경로를 찾아가서 해당 하는 모듈을 실행을 시킨다.

가령 html에서 A.html, B.html파일이 있다고 생각해 보자.

A.html에서 B.html로 이동하고 싶으면 

A.html에서 <a href="B.html">B 화면으로 이동</a> 작성하고 해당 영역을 클릭하면 B.html 화면으로 이동한다.

nodejs는 각각의 url에 따른 다른 모듈을 접근할 때에 router 설정이 필요하다.

 

router 설정방법 (nodejs express 프로젝트로 생성)

경로 : app.js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index'); //router 설정파일 호출
var usersRouter = require('./routes/users'); //router 설정파일 호출

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter); //앱에 설정한 라우터 모듈을 사용할 수 있게 적용
app.use('/users', usersRouter); //앱에 설정한 라우터 모듈을 사용할 수 있게 적용

-------------------아래내용 생량-------------------

nodejs 서버 실행 (http://localhost:3000) 

app.js 파일에서 설정한 

var indexRouter = require('./routes/index');

app.use('/',indexRouter);

경로 : /routes/index.js

router path : /api/board << router 추가

경로 : /routes/index.js

var express = require('express');
var router = express.Router();
const api = require("./api"); //api router 호출

/* GET home page. */
router.get('/', function(req, res, next) {
  console.log("path="+req.path);
  next();
});

router.use("/api",api); //api router 적용

router.all('/',(req,res)=>{
  res.send("{message:welcome}");
})

module.exports = router;

router path : /api 에서 /board router 설정

경로 : /routes/api/index.js

const router = require('express').Router();
const board = require('./board'); //board router 호출

router.all('*',(req, res, next)=>{
	console.log("path="+req.path);
	next();
})

router.use("/board",board); //board router 적용

router.all('*',(req, res)=>{
	res.status(404).send({success:false, msg:`api unknown uri ${req.path}`});
})

module.exports = router;

router path : /api/board

경로 : /routes/api/board/index.js

const router = require('express').Router();

router.get("/",(req,res)=>{ //화면에 good 노출
	res.send("good");
});

router.all('*',(req, res)=> {
	res.status(404).send({success:false, msg:'board unknown uri ${req.path}'});
})

module.exports = router;

router /api/board 추가 완료 웹 화면에서 확인

 

반응형