우리는 블로그나 카페에서 내가 갖고 있는 파일을 업로드할 수 있다. Node.js에서도 이러한 파일 업로드를 만들어 실습해보자
express에서는 기본적으로 파일 업로드에 대해서 지원해주지 않는다. 따라서 이에 해당하는 모듈을 설치해야한다.
multer라는 모듈은 우리가 파일 업로드를 할 수 있도록 도와준다. npm을 통해서 설치하자
1 2 3 4 5 | //설치 npm install multer --save //app_file.js에 작성 var multer = require('multer'); | cs |
multer 모듈을 사용하기 위해 app_file.js에 위와 같이 require 문을 작성하도록 한다.
우리가 업로드할 파일을 저장할 uploads 폴더를 하나 만들고, multer로 해당 경로를 아래와 같이 app_file.js에 설정해준다.
1 | var upload = multer({ dest: 'uploads/' }) | cs |
1 2 3 4 5 6 7 8 | doctype html html head meta(charset='utf-8') body form(action='upload' method='post' enctype="multipart/form-data") input(type='file' name='userfile') input(type='submit') | cs |
이제 app_file.js에 upload경로를 불러올 get과 post를 작성하자
1 2 3 4 5 6 7 | app.get('/upload', function(req, res){ res.render('upload'); }) app.post('/upload', function(req, res){ res.send('Uploaded'); }) | cs |
1 2 3 | app.post('/upload', upload.single('userfile'), function(req, res){ res.send('Uploaded : ' + req.file); }); | cs |
1 2 3 4 | app.post('/upload', upload.single('userfile'), function(req, res){ console.log(req.file); res.send('Uploaded : ' + req.file.originalname); }); | cs |
1 2 3 4 5 6 7 8 9 10 | var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, '/tmp/my-uploads') }, filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now()) } }) var upload = multer({ storage: storage }) |
1 2 3 4 5 6 7 8 | var _storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/') }, filename: function (req, file, cb) { cb(null, file.originalname) } }) | cs |
'Node.js' 카테고리의 다른 글
[Node.js] Mysql 시퀄라이즈 요약 (0) | 2018.10.07 |
---|---|
[Node.js] 핵심 요약 (0) | 2018.09.26 |
[Node.js] 5. 웹 애플리케이션 만들기 (0) | 2018.04.03 |
[Node.js] 4. Express 프레임워크 (get과 post) (0) | 2018.04.02 |
[Node.js] 3. Express 프레임워크(템플릿, URL) (0) | 2018.04.02 |
우리는 블로그나 카페에서 내가 갖고 있는 파일을 업로드할 수 있다. Node.js에서도 이러한 파일 업로드를 만들어 실습해보자
express에서는 기본적으로 파일 업로드에 대해서 지원해주지 않는다. 따라서 이에 해당하는 모듈을 설치해야한다.
multer라는 모듈은 우리가 파일 업로드를 할 수 있도록 도와준다. npm을 통해서 설치하자
1 2 3 4 5 | //설치 npm install multer --save //app_file.js에 작성 var multer = require('multer'); | cs |
multer 모듈을 사용하기 위해 app_file.js에 위와 같이 require 문을 작성하도록 한다.
우리가 업로드할 파일을 저장할 uploads 폴더를 하나 만들고, multer로 해당 경로를 아래와 같이 app_file.js에 설정해준다.
1 | var upload = multer({ dest: 'uploads/' }) | cs |
1 2 3 4 5 6 7 8 | doctype html html head meta(charset='utf-8') body form(action='upload' method='post' enctype="multipart/form-data") input(type='file' name='userfile') input(type='submit') | cs |
이제 app_file.js에 upload경로를 불러올 get과 post를 작성하자
1 2 3 4 5 6 7 | app.get('/upload', function(req, res){ res.render('upload'); }) app.post('/upload', function(req, res){ res.send('Uploaded'); }) | cs |
1 2 3 | app.post('/upload', upload.single('userfile'), function(req, res){ res.send('Uploaded : ' + req.file); }); | cs |
1 2 3 4 | app.post('/upload', upload.single('userfile'), function(req, res){ console.log(req.file); res.send('Uploaded : ' + req.file.originalname); }); | cs |
1 2 3 4 5 6 7 8 9 10 | var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, '/tmp/my-uploads') }, filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now()) } }) var upload = multer({ storage: storage }) |
1 2 3 4 5 6 7 8 | var _storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/') }, filename: function (req, file, cb) { cb(null, file.originalname) } }) | cs |
'Node.js' 카테고리의 다른 글
[Node.js] Mysql 시퀄라이즈 요약 (0) | 2018.10.07 |
---|---|
[Node.js] 핵심 요약 (0) | 2018.09.26 |
[Node.js] 5. 웹 애플리케이션 만들기 (0) | 2018.04.03 |
[Node.js] 4. Express 프레임워크 (get과 post) (0) | 2018.04.02 |
[Node.js] 3. Express 프레임워크(템플릿, URL) (0) | 2018.04.02 |