사내스터디 - node JS + express

🐳ㅇㅡㄴㄱㅓ·2022년 10월 13일
0

사내스터디

목록 보기
5/7

route 파일 관리하기

  • route 파일을 별도로 관리하려면 routes 폴더가 필요

  • 그 안에 비슷한 라우트들은 별도의 js파일로 관리

  • 분리된 js 파일

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

// middleware that is specific to this router
router.use(function timeLog(req, res, next) {
  console.log('Time: ', Date.now());
  next();
});
// define the home page route
router.get('/', function(req, res) {
  res.send('Birds home page');
});
// define the about route
router.get('/about', function(req, res) {
  res.send('About birds');
});

module.exports = router;
  • server.js에서 분리한 라우트 모듈을 로드
var birds = require('./birds');
...
app.use('/birds', birds);

분리된 route 파일내에서 미들웨어 적용

router.use(적용할 미들웨어);
router.use('미들웨어 적용할 특정경로', 적용할 미들웨어);

multipart로 이미지 업로드 하려고 하는 경우

  • multer 라이브러리를 설치하고 사용
let multer = require('multer');
var storage = multer.diskStorage({
	//파일이 저장될 경로
	destination: function(req, file, cb) {
		cb(null, './public/image')	
	},
	filename: function(req, file, cb) {
		cb(null, file.originalname)
	}
});

var upload = multer({storage : storage});

참고 : multer

changeStream - 이벤트리스너같은 것

  • 클래스쪽 영상변환 완료 시 이용해 볼 수 있을듯 ( 아 근데 클래스는 몽고DB가 아니지 )
  • Mongo DB change stream 기능을 이용하면 동적으로 DB 변동사항을 감지
  • 변동이 생기면 서버에게 업데이트 사항을 알려줌.
  • 실시간 서비스 만들 때 유용
const 찾을문서 = [   
	{ $match: { fullDocument.name : 123 } } 
];   

const changeStream = db.collection('message').watch(찾을문서); 

changeStream.on('change', (result) => {   
	console.log(result.fullDocument); 
});
  • 중간부터 흐름이 똑같다고 생각되서 이후 내용은 정리를 굳이 안함.
  • 현재 내가 필요한 부분은 typescript + express 를 이용하여 api 를 딱 만드는 부분까지이기 때문
profile
재활훈련 중

0개의 댓글