반응형
간단 메모, 필기
nodemon
서버코드에 수정사항 생길때 마다 서버를 자동으로 제시작해줌
const express = require('express');
const app = express();
app.set('port', 3000);
app.get('/', (req, res) => {
res.send('Hello Express');
});
app.listen(app.get('port'), () => {
console.log(app.get('port'), '번 포트로 서버 열림');
});
app.set을 통해 서버가 실행될 포트를 지정함
app.get(주소, 라우터)에 대해 주소에 대한 GET요청이 왔을때 어떤 동작을 할 지 적음
요청에 따라 프로토타입 메서드로 post,put,patch,delete,options가 존재함
HTML로 응답하기
res.sendFile(path.join(__dirname, '/index.html'));
__dirname : 해당 경로
미들웨어 사용하기
요청과 응답의 중간에 위치함
라우터와 에러핸들러 또한 미들웨어의 일종
app.use(미들웨어)
의 형식으로 사용함
app.use((err, req, res, next) => {
console.error(err);
res.status(500).send(err.message);
});
next
다음 미들웨어로 넘어가는 함수
app.get(
'/',
(req, res, next) => {
console.log('GET요청이네용');
res.sendFile(path.join(__dirname, '/index.html'));
next(); //이게 없으면 다음 화살표 함수는 수행되지 않음
},
(req, res) => {
throw new Error('에러는 에러처리 미들웨어로 갑니다.');
}
);
app.use((err, req, res, next) => {
console.error(err);
res.status(500).send(err.message);
}); //전체 url에서 수행됨
주소를 첫번째 인수로 넣지 않는다면, 미들웨어는 모든 요청에서 실행됨
app.use(미들웨어) // => 모든 요청에서 사용
app.use('/abc',미들웨어) // => /abc로 시작하는 요청에서 미들웨어 실행
app.post('/abc',미들웨어) // => /abc로 시작하는 POST 요청에서 미들웨어 실행
morgan
요청과 응답에 대한 정보를 콘솔에 기록해줌
app.use(morgan('dev')
dev 이외에도 combined, common, short, tiny등이 있음
인수에 따라 로그가 다르게 나옴
static
정적인 파일들을 제공
함수의 인수로 정적 파일이 담긴 폴도를 지정하면됨
app.use('/', express.static(path.join(__dirname, 'public')));
router
const app = express();
app.set('port', process.env.PORT || 3000);
const indexRouter = require('./routes');
const userRouter = require('./routes/user');
app.use('/', indexRouter);
app.use('/user', userRouter);
/ 와 /user 를 등록
// routes/index.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello, Express');
});
module.exports = router;
// routes/user.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello, User');
});
module.exports = router;
와일드카드 url
일반 라우터 보다 뒤에 위치해야함
//user.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello, User');
});
router.get('/:id', (req, res) => {
console.log(req.params, req.query);
res.send(req.params);
});
module.exports = router;
params.id의 형태로 조회가능함
반응형