2016-10-24 4 views
0

로컬 폴더에 이미지를 저장하고 아래 코드로 multer을 사용하여 mongodb에 이미지를 저장하려고합니다.이미지가 멀터를 사용하여 데이터베이스에 저장되지 않습니다

var uploadDir=__dirname+ '/assets/images'; 
var images='.jpg'; 
var storage=multer.diskStorage({ 
    destination:function(req, file, cb){ 
    cb(null, uploadDir); 
    }, 
    filename:function(req, file, cb){ 
    console.log(file); 
    image=Date.now()+images; 
    callback(null, images); 
    } 
}); 
var upload=multer({storage:storage}).single('img'); 

그러나 로컬 폴더 만 그것 MongoDB의에서 이미지 필드에서 .jpg 문자열을 저장하여 그 저장하지 않는 이미지. 문제는 filename: 메서드가 작동하지 않는다고 생각합니다. 이를 검토하고 해결책을 찾도록 도와주세요.

감사합니다.

+0

경로에 멀터 미들웨어를 어떻게 등록합니까? 이 코드도 제공 할 수 있습니까? –

+0

'apiRoutes.post ('/ adcreate', 업로드, 기능 (req, res, next) { \t/* ---- 데이터 코드 삽입 */ })' –

+0

그냥 아래에 답변을 게시. 이 미들웨어가 올바르게 등록되었으며 오류는 멀터 설정의 정의에 있습니다. –

답변

0

오류는 멀티 파일 이름 구성에 있습니다. 거기에서 이미지 변수를 사용했기 때문에 이미지를 올바른 경로에 .jpg 이름으로 저장하지 않는 것이 그 이유입니다. var image을 var로 정의하는 것이 좋습니다. 그렇지 않으면 예측할 수없는 부작용으로 전역 네임 스페이스에 정의됩니다. 이게 작동해야합니다 :

var uploadDir=__dirname+ '/assets/images'; 
var images='.jpg'; 
var storage=multer.diskStorage({ 
    destination:function(req, file, cb){ 
    cb(null, uploadDir); 
    }, 
    filename:function(req, file, cb){ 
    console.log(file); 
    var image=Date.now()+images; 
    callback(null, image); 
    } 
}); 
+0

작동하지 않습니다 ... 여전히 동일한 오류 –

+0

도'console.log (file)'이 보이지 않습니다. –

+0

@SaurabhSharma 오류 무엇입니까? 전에 오류를 게시하지 않았습니다. 방금 이미지가 적절한 이름과 적절한 디렉토리에 저장되지 않는다고하셨습니다. 이 결과가 아직 있습니까? –

관련 문제