deVSner

express - multer, router, req, res 본문

카테고리 없음

express - multer, router, req, res

RudeofSun 2020. 8. 30. 00:12

 

1.

multer

app.use(upload.single('image')) // 

// 위 upload 객체를 라우터에다가 장착 이 떄, single 안에 인수는 html form의 input 의 name 속성값과 일치해야 한다.
// 1. input의 속성값중에서, multiple 이라면 -> upload.array('image')가 되어야 하고, req.files가 되어야 한다
// 2. multiple이 아닌, single인데, 이 input 이 여러개 일 떄, -> upload.fields( [ {name: 'image1'}, {name: 'image2'}, ... ] )
// 3. 2번에 이어서, 객체 안에 limits:4 처럼 프로퍼티를 지정할 수 잇는데, 이미지 갯수의 제한이다
// 4. 2번에 이어, req.files.image1  , req.files.image2   이렇게 불러온다
// 5. upload.none() -> 거의 쓰진 않지만, 이미지를 업로드 안하는데, form type이 encytype 이라고 되있기 때문에
// 6. 5번에 이어서, req.file은 없다. 
app.post('/upload', upload.single('image'), (req, res) => {
  console.log(req.file);  // 업로드한 파일의 정보가 저장된다 ,
  res.send('ok');
});

 

 

 

2. 

router

- 라우트 매개변수
:id를 넣으면 req.params.id로 받을 수 잇음
동적으로 변하는 부분을 라우트 매개변수로 만듦
router.get('/user/:id', function(req, res) => {
  console.log(req.params, req.query);
});
일반 라우터보다 뒤에 위치해야 함
router.get('/user/:id', function(req,res) {
  console.log('실행1');
})
router.get('/user/like', function(req,res) {
  console.log('실행 X')
});

* /users/123?limit=5&skip=10 주소 요청인 경우  -> 쿼리스트링이 붙는 경우.
콘솔에 이렇게 찍힘
{id: '123'} {limit:'5' , skip: '10'}


- 라우터 그룹화하기
주소는 같지만 메서드가 다른 코드가 있을 때
router.get('/abc', (req,res) => {
  res.send('GET /abc');
});
router.post('/abc', (req,res) => {
  res.send('POST /abc');
});
->>  이거를 router.route 로 묶는다     
router.router('/abc')
  .get((req,res) => {
    res.send('GET /abc')
  })
  .post((req,res) => {
    res.send('POST /abc')
  })

 

 

3.

req, res

https://expressjs.com/en/4x/api.html#req

 

Express 4.x - API Reference

Express 4.x API express() Creates an Express application. The express() function is a top-level function exported by the express module. var express = require('express') var app = express() Methods express.json([options]) This middleware is available in Ex

expressjs.com