GridFS에 프로젝트와 파일을 저장하려고합니다. 먼저 프로젝트를 저장하고 프로젝트의 "_id"를 메타 데이터로 사용하여 파일을 저장하려고합니다. 내가 ENOENT를 얻으려고했는데 '/ tmp/45e85388793de'오류가 발생했습니다. 여기 내 코드는ENOENT 오류, nodejs에서 '/ tmp/45e85388793de'열기
newProject.save(function (err,project) {
if (err) {
console.log('save error', err);
}
console.log("project added");
var id=poject._id;
var filepath = req.files.file.path;
var filename = req.files.file.name;
var writestream = gfs.createWriteStream({ filename: filename, metadata:id });
console.log(filepath);
fs.createReadStream(filepath)
.on('end', function() {
})
.on('error', function(err) {
console.log("error encountered"+err);//ENOENT,open error
})
.pipe(writestream);
});
이 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?
안녕하세요, 나는 같은 문제에 직면하고 있습니다.이 오류는 디렉토리가 존재하지 않을 때 발생한다는 것을 알고 있습니다. 보시다시피 프로젝트에 파일을 연결해야하므로 프로젝트를 저장 한 후 파일을 쓰고 있습니다. 그래서 project.save()의 콜백 함수에 파일을 저장하는 코드를 작성했지만 거기에서 작동하지 않습니다. 동일한 코드를 .save 블록 외부에두면 동일한 코드가 동일한 경로에서 완벽하게 작동합니다. (나는 내외부의 경로를 보여 주었고 그들은 동일하다) –