Javascript 如何将带有Angularjs的用户配置文件照片上载到mongodb数据库(用户模型)(平均堆栈)?
我想能够上传一张照片到用户对象作为个人资料照片。我曾经上传过多方参与的照片,但现在我对angularjs还不熟悉,我正试图弄清楚这是怎么做到的 以下是我过去使用多方参与的方式: 型号:Javascript 如何将带有Angularjs的用户配置文件照片上载到mongodb数据库(用户模型)(平均堆栈)?,javascript,node.js,angularjs,mongodb,mean-stack,Javascript,Node.js,Angularjs,Mongodb,Mean Stack,我想能够上传一张照片到用户对象作为个人资料照片。我曾经上传过多方参与的照片,但现在我对angularjs还不熟悉,我正试图弄清楚这是怎么做到的 以下是我过去使用多方参与的方式: 型号: User.prototype.save = function(fields, files, cb){ var properties = Object.keys(fields), self = this; properties.forEach(function(property){
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和post。然而,我不太清楚如何使用angularjs来获得同样的效果并上传照片
提前谢谢。另外,我使用的是没有Mongoose的mongoDB。我也在使用ngroute currenlty,而不是带有angularjs的UI路由器。基本上,我想弄清楚如何在angularjs中使用整个user.protype.save函数。。我一直在做这个。。叔叔退房。这是一个基于Flow.js库的不错的扩展,应该可以满足您的需要