2014-12-31 3 views
1

나는 파일을 gridfs에 쓸 수있는 스 니펫을 만들었지 만 문자열을 Gridfs로 업데이트하는 방법을 찾을 수 없습니다.gridfs-stream을 사용하여 gridfs에 문자열 쓰기

아래 스 니펫은 경로를 사용하여 업데이트되지만 직접 문자열 버퍼는 어떻게됩니까?

var metadata = { 
    "path": path 
}; 
var writestream = gfs.createWriteStream({ 
    filename: name, 
    mode: 'w', 
    content_type: type, 
    metadata: metadata 
}); 
fs.createReadStream(path).pipe(writestream); 
// var buf = new Buffer("hello"); 
writestream.on('close', function (file) { 
    console.log("Gridfs created"); 
}); 

답변

0

나는 동일한 문제에 직면했다. 방금 gfs.remove를 사용하여 파일을 삭제 한 다음 업데이트 된 파일을 GridFS에 추가했습니다.

또한 FYI. async.series를 사용하여 먼저 삭제 작업을 완료 한 다음 업데이트 된 파일을 GridFS에 씁니다.

희망이 도움이됩니다.

0

비록 오래되었지만. 이 문제가있어서 파일 대신 문자열에서 스트림을 만드는 방법으로 해결했습니다. 이처럼 : here

에서 스트림 아이디어를 얻었다
var writestream = gfs.createWriteStream({ 
     filename: fileName 
    }); 

    // Create stream with buffer to pipe to writestream 
    var s = new stream.Readable(); 
    s.push(pic); 
    s.push(null); // Push null to end stream 
    s.pipe(writestream); 

    writestream.on('close', function (file) { 
    // Do anything with the file 
    cb(null, file.filename); 
    }).on('error', cb);