0
我希望能夠上傳一張照片給用戶對象的個人資料照片。我已經用multiparty上傳了過去的照片,但現在我是angularjs的新手,並試圖弄清楚這是如何完成的。如何上傳與Angularjs用戶個人資料照片,MongoDB的數據庫(用戶模式)(平均堆棧)?
下面是我如何在過去使用的多:
型號:
User.prototype.save = function(fields, files, cb){
var properties = Object.keys(fields),
self = this;
properties.forEach(function(property){
self[property] = fields[property][0];
});
var oldphotos = this.photos,
newphotos = moveFiles(files, oldphotos.length, '/img/' + this._id);
this.photos = oldphotos.concat(newphotos);
this.location = {name:this.loc, lat:this.lat, lng:this.lng};
this.isVisible = (this.isVisible === 'true') ? true : false;
User.collection.save(this, cb);
};
module.exports = User;
function moveFiles(files, count, relDir){
var baseDir = __dirname + '/../static',
absDir = baseDir + relDir;
if(!fs.existsSync(absDir)){fs.mkdirSync(absDir);}
var tmpPhotos = files.photos.map(function(photo, index){
if(!photo.size){return;}
var ext = path.extname(photo.path),
name = count + index + ext,
absPath = absDir + '/' + name,
relPath = relDir + '/' + name;
fs.renameSync(photo.path, absPath);
return relPath;
});
控制器:
exports.update = function(req, res){
var form = new mp.Form();
form.parse(req, function(err, fields, files){
User.findById(res.locals.user._id, function(err, user){
user.save(fields, files, function(err, cb){
res.redirect('/profile');
});
});
});
};
觀點:
.form-group
label(for='photos') Photos
input.form-control#photo(type='file', name='photos', multiple=true)
.form-group
原諒我「noobness 「,但對於基礎項目我已經使用angularjs完成了,我基本上在客戶端使用.factory來鏡像控制器。在服務器端控制器,而不是重定向,我做了一個res.send併發布在路由器。然而,我不太清楚如何做到這一點與angularjs得到這同樣的影響工作,並上傳一張照片..
在此先感謝。另外,我使用mongoDB而不使用mongooose。我也使用ngroute currenlty,而不是使用angularjs的UI路由器。基本上,我想弄清楚如何在angularjs中使用這整個user.protype.save函數..一直在努力.. 叔叔