POST和GET图像到/从Angular的MongoDB

我正在做一个angular度的应用程序,为用户提供了可能性,来pipe理他们的项目。 我有nodeJS&express expresside和MongoDB作为我的数据库。

我想实现的目的是,用户可以上传媒体(16MB以下的图片,所以不需要使用GridFS)到他们的项目中,并且可以显示哪个项目,哪个媒体附加。

我没有得到图像,也没有错误。 我如何从angular度传递project_Id到我的路线,find附加到项目的媒体? 这样试图发布和获得媒体正确的方式?

项目和媒体的模型:

 var mediaSchema = mongoose.Schema({ media : {data: Buffer, contentType: String}, project_id : String, updated_at : {type: Date, default: Date.now } }); 

 var projectSchema = mongoose.Schema({ author : String, name : String, description : String, tags : String, updated_at : {type: Date, default: Date.now }, active : {type: Boolean, default: false} }); 

路由

 var Media = require('./models/media.js'); //GET all the media app.get('/uploads/', function(req, res, next){ Media.find(function (err, media){ if (err) return next (err); res.json(media); }); }); //GET one item app.get('/uploads/media/:projectId', function(req, res, next){ Media.findOne(req.params , function (err, media){ if (err) return next (err); res.json(media); }); }); 

pipe理上传

 app.use(multer({ dest: './uploads/', rename: function (fieldname, filename) { return filename+Date.now(); }, onFileUploadStart: function (file) { console.log(file.originalname + ' is starting ...') }, onFileUploadComplete: function (file) { console.log(file.fieldname + ' uploaded to ' + file.path) done=true; } })); var Media = require('./app/models/media.js'); //POST media to the upload directory app.post('/uploads/', function(req, res){ if(done==true){ Media.create(req.body, function(err, post){ console.log(req.files); res.end('File uploaded'); }); } }); 

angular度控制器

  var app = angular.module('myApp', []); app.controller('projectCtrl', function($scope, $http) { $scope.myVar = false; $scope.toggle = function() { $scope.myVar = !$scope.myVar }; $http.get('/profile/project/').then(function (res){ $scope.projects = res.data; }); //GET Media var projectId = {{projects._id}}; $http.get('/uploads/media' + projectId).succes(function(data){ console.log('Medien-Daten erhalten'); $scope.media = data; }); }); 

来自德国的问候,大卫

更新(新错误)

试图实施一个解决scheme,我的范围遇到问题。 当我为媒体添加$ http.get时,我的其他作用域似乎不提取数据…它们显示如下: 范围不起作用

更新2(范围错误已修复)

修正了控制器中的错误。 我没有为projectId定义一个variables,导致了错误。 pipe理让GET请求工作,我的应用程序正在查找数据库中的条目。 但我无法看到任何..

在获取所有函数中使用.find是不正确的。

请参阅http://mongoosejs.com/docs/api.html#query_Query-find

 Media.find({}, function (err, media){ if (err) return next (err); res.json(media); }); 

这将返回所有文件。