Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将带有Angularjs的用户配置文件照片上载到mongodb数据库(用户模型)(平均堆栈)?_Javascript_Node.js_Angularjs_Mongodb_Mean Stack - Fatal编程技术网

Javascript 如何将带有Angularjs的用户配置文件照片上载到mongodb数据库(用户模型)(平均堆栈)?

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){

我想能够上传一张照片到用户对象作为个人资料照片。我曾经上传过多方参与的照片,但现在我对angularjs还不熟悉,我正试图弄清楚这是怎么做到的

以下是我过去使用多方参与的方式:

型号:

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库的不错的扩展,应该可以满足您的需要