소수전공 2회차) express를 활용한 웹서버 열기
2017. 12. 18. 12:38ㆍ프로그래밍(주력)/JAVASCRIPT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | //미들웨어 받아오기 const express = require('express') const bodyParser = require('body-parser') const multer = require('multer') const app = express() //multer - diskStorage -> 하드에 저장함 (보통 이거 씀) //multer - memoryStorage -> 램에 저장함 (용량 제한을 해서 사용하고, 서버에 저장할 필요가 없을때 씀) //아래 코드는 실제로 저장이 되는 disk multer const diskStorage = multer.diskStorage({ //저장할곳 destination : (req, file, cb) => { cb(null, 'public/uploads/') }, //파일 이름(이거 안쓰면 파일이름이 해쉬값으로 들어가져버림..) filename : (req, file, cb) => { console.log(file.originalname) console.log(file) cb(null, file.originalname) }, }) //저장 안되는 memort multer 저장할필요가 없으니 객체 초기화해줄 필요도 없음 //이방식으로 이미지를 불러오면 ff ef이런 16진수 2자리로 버퍼가 남음 - 디스크에 저장을 하지 않으므로 전달용으로 남는거임 const memoryStorage = multer.memoryStorage() //업로드 설정 const upload = multer({storage : memoryStorage}) //미들웨어 설정 //미들웨어는 express안의 부가적 import들을 말한다고 보면 된다. //"/"로 들어오면 public 폴더를 엑세스 하게 해줌 //use는 미들웨어 쓸때 app.use('/', express.static(__dirname + '/public')) /* app.use(bodyParser.urlencoded({ //urlencoded가 쓰이는 이유 //파싱을 해서 객체로 자동으로 만들어줌. 안쓰면 문자열로 통쨰로 가져옴 extended : true, })) */ //get방식 /* ///api/posts에 들어가면 특정 문자열 return app.get('/api/posts', (req, res) => { res.send('HELLO @').end() }) ///api/posts/숫자 에 들어가면 특정 문자열 return app.get('/api/posts/:post_id', (req, res) => { let postID = req.params.post_id res.send('YOU REQUEST TO ' + postID).end() }) */ //post방식 //input태그의 name이 req.body의 키값이 됨 /* app.post('/api/posts', (req, res) => { res.send(req.body).end() }) */ app.post('/api/posts', upload.any(), (req, res) => { console.log(req.body, req.files) res.send(req.body).end() }) //나머지 주소로 들어오면 다 404를 띄워버림 app.get('*', (req, res) => { res.status(404).end() }) app.listen(8081) console.log("localhost:8081에서 실행중") | cs |
또한 모듈화를 통한 파일 세분화(?)를 하였다(첨부파일 참고)
'프로그래밍(주력) > JAVASCRIPT' 카테고리의 다른 글
소수전공 6회차) Joi를 활용해 로그인 규칙 정하기, LOL api로 request 해보기 (0) | 2017.12.21 |
---|---|
소수전공 5회차) socket.io를 활용한 채팅, room구현 (0) | 2017.12.20 |
소수전공 4회차) mariaDB연동, 로그아웃, 세션 구현 (0) | 2017.12.20 |
소수전공 3회차) passport, mariadb연동 준비 (0) | 2017.12.18 |
소수전공 1회차) ES6의 기초와 node js로 간단한 웹서버 열어보기 (0) | 2017.12.14 |