to가 절대경로가 아니면 절대경로를 찾을 때까지from아규먼트들을 우측에서 좌측의 순서로 앞에 이어붙힌다.모든from경로를 사용한 후에도 절대경로를 찾지 못하면 현재 워킹 디렉토리를 사용한다. 최종 경로는 정규화되고 경로가 루트 디렉토리로 처리되지 않는한 마지막 슬래시는 제거한다. 문자열이 아닌 아규먼트는 무시한다.
이는 쉘에서cd명령어를 순서대로 실행한 것과 같다.
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
//-- 이는 다음과 비슷하다.:
cd foo/bar
cd /tmp/file/
cd ..
cd a/../subfile
pwd
//--다른 경로라 존재할 필요가 없거나 파일일 수도 있다는 점만이 다르다.
path.resolve('/foo/bar', './baz')
// returns
'/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/')
// returns
'/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// if currently in /home/myself/node, it returns
'/home/myself/node/wwwroot/static_files/gif/image.gif'
var multer = require('multer'); //multer 모듈 import
var upload = multer({dest: 'public/images/yesno/'}); //업로드 경로 설정
//미리 폴더를 만들어놔야 하며, 경로 맨 앞에 '/'는 붙이지 않습니다.
var multer = require('multer');
//multer 의 diskStorage를 정의
var storage = multer.diskStorage({
//경로 설정
destination : function(req, file, cb){
cb(null, 'publics/images/');
},
//실제 저장되는 파일명 설정
filename : function(req, file, cb){
//파일명 설정을 돕기 위해 요청정보(req)와 파일(file)에 대한 정보를 전달함
var testSn = req.body.TEST_SN;
var qSn = req.body.Q_SN;
//Multer는 어떠한 파일 확장자도 추가하지 않습니다.
//사용자 함수는 파일 확장자를 온전히 포함한 파일명을 반환해야 합니다.
var mimeType;
switch (file.mimetype) {
case "image/jpeg":
mimeType = "jpg";
break;
case "image/png":
mimeType = "png";
break;
case "image/gif":
mimeType = "gif";
break;
case "image/bmp":
mimeType = "bmp";
break;
default:
mimeType = "jpg";
break;
}
cb(null, testSn + "_" + qSn + "." + mimeType);
}
});
var upload = multer({storage: storage});