junkery-file-upload-middleware 및 mongoDB와 함께 express.js에서 jQuery File Upload를 사용하고 있습니다.jQuery 파일 업로드에서 모든 파일을 업로드 할 때 서버 측에서 stop 이벤트를 사용하는 방법
갤러리의 이미지를 업로드하고 싶습니다. Galery 객체는 이미지 객체의 배열과 같은
var GalerySchema = new mongoose.Schema({
images: [ImageSchema]
})
각 파일을 비동기 적으로 업로드 한 후, 나는 내 galery 개체의 이미지 배열로 밀어 원하는 포함되어 있습니다. 이후, 나는 잘 [VersionError: No matching document found.]
알려진 얻을, 즉, 내 현재의 지식으로, 같은 MongoDB를 문서의 동시 액세스로 인해,
// Is called everytime an image is uploaded
upload.on('end', function(fileInfo, rew, res){
// Get the galery
db.Galery.findOne({_id: req.fields.galery_id}, function(err, galery){
// Create new Image object instance
var image = new db.Image({src: fileInfo.name});
// Save, in order to create auto generated _id
image.save(function(err){
if(err) {console.log(err); return; }
// Add to Images array of Galery object
galery.images.push(image);
// Save galery with added image
galery.save(function(err){
if(err) { console.log(err); return; }
});
})
});
});
그 일 :
나는 다음과 같은 서버 측을하려고 노력 업로드가 비동기 적으로 발생합니다.문제의 비동기 방식을 처리하려면 모든 업로드가 완료 될 때까지 기다린 다음 mongodb에 이미지를 하나씩 삽입하는 것, 즉 async.parallel()
을 사용하는 것이 좋습니다.
하지만 업로드가 완료된 모든 일정에 어떻게 액세스합니까?
나는 브라우저 측에서 stop event을 사용할 수 있음을 알고 있습니다. 하지만 먼저 업로드 된 파일에 대한 데이터가 없습니다. 또한, 나는 그것을 서버 측에서하고 싶다. (: NPM은 블루 버드 --save를 설치 https://github.com/petkaantonov/bluebird 블루 버드)와 같은 것을 가지고
는upload.on('doneAll', function(allFilesInfo, req, res){...})?
'res'를 사용해 보셨습니까? 'res.end ('Uploaded')' – Mornor
jQuery 파일 업로드 속성에서 순차적으로 업로드하기 위해'sequentialUploads : true'를 설정하여 해결 방법을 찾았습니다. 하지만 비동기식으로하는 방법을 알고 싶습니다. – Flaudre
업로드 된 이미지를 가져 오기 위해 어떤 라이브러리를 사용하고 있는지 잘 모르겠습니다. 마지막 이미지의 upload.on ('end')이 언제 호출되는지 알 필요가 있습니다. 어쨌든 알 수 있습니까? –