2015-01-13 2 views
0

새 메시지를 보내 주시면 감사하겠습니다. mongodb, mongoose, gridfs-strea를 사용하고 mongodb에 img 파일을 저장하려고합니다. 파일을 폴더에 저장하고 싶지 않습니다. 나는 gfs.createWriteStream이 express에서 app.post로부터 직접 파일을 가져 오길 원한다. App.post는 현재 일부 문자열을 스키마 모델을 통해 mongodb에 저장하고 있습니다. app.post로 전달되는 양식에는 문자열과 img 파일에 대한 입력이 포함됩니다.gridfs-stream을 사용하여 매우 표현하고 mongodb에

dnimgfront:req.pipe(gfs.createWriteStream('req.body.dnimgfront')) 

내가 다시 점점 오전 :

나는이 (입력의 이름 인 dnimgfront)를 수행했습니다.

TypeError: Object function Grid(db, mongo) { 
if (!(this instanceof Grid)) { 
    return new Grid(db, mongo); 
} 

mongo || (mongo = Grid.mongo ? Grid.mongo : undefined); 

내 문제는 동일한 app.post 저장 기능에서 img와 문자열을 저장할 수 있어야한다는 것입니다. 어떤 아이디어? 내가 MongoDB를에 연결하는 데 사용하고 무엇

이다 : 당신의 도움에 미리

mongoose.connect('mongodb://localhost/veeltaxi'); 

var con=mongoose.connection; 

con.once('open', function(){ 
    console.log('connected to mongodb succesfully!') 
}); 

감사합니다. 이번에는 Node.js를에,

var writeStream = gfs.createWriteStream({ 
    filename: filename, // the name of the file 
    content_type: mimetype, // somehow get mimetype from request, 
    mode: 'w' // ovewrite 
}); 

req.pipe(writeStream); 

그러나 :

var GridStream = require('gridfs-stream'); 
var mongodb = require('mongodb'); 
var gfs = new GridStream(mongoose.connection,mongodb); 

하는 포인트는 쓰기 스트림 파이프를 만들 수 있습니다

답변

0

첫째, 당신은 대신 gridfs 스트림의 필요 MongoDB Driver는 Streams 2를 사용하는 버전 2.0이므로 mongodb lib 버전을 사용하는 경우 gridfs-stream을 사용할 이유가 없습니다. See the source code for v2.0.13. FYI, 업데이트 된 드라이버에서 구현되는 스트림은 양방향입니다. (옆으로 : gridfs-stream에는 문제가 많으며 적극적으로 유지 관리하는 동안 자주 발생하지는 않습니다.)

+0

re.pipe (writeStream (req.body.dnimgfront))를 호출 할 수 있습니까? req.body 양식에서 writeStream으로 img를 저장하는 이유는 무엇입니까? 이것은 app.post 함수 내에 있습니다. – jsrosas

+0

@ jsrosas 예를 들어 인라인이라고 부를 수 있지만 가지고있는 방식은 아닙니다. 멀티 파트를 사용하고 있습니까? 미들웨어는 무엇을 사용하고 있습니까? 기타? – zamnuts

+0

method-override urlenconded가있는 body-parser enconded extended = true – jsrosas