用mongoose保存图像

我知道在这个话题上已经有不less线索了,但不幸的是,直到现在我还没有find答案。 我使用来自http://angular-js.in/image-upload/的示例代码中的angular.js从客户端获取图像。 这部分工作

现在到节点/ mongodb部分,这里是我的后端模型:

var userSchema = new mongoose.Schema({ avatar: { data: Buffer, contentType: String }, // ... }); module.exports = mongoose.model('User', userSchema); 

和我的节点代码:

 exports.createAvatar = function (req, res) { var avatar = { data: req.body.data.image, // see below contentType:'image/png' } models.DUser .findById(index.findUserId(req)) .exec( function (err, user) { user.avatar = avatar; // ... user.save(function (err, user) {/* ... */ }); 

和我的angularCtrl:

 var foo = { image: image, imageName: image.name, }; $http.post('/api/users', {data: foo }) .success(function (result) { /*...*/}); 

除了req.body.data.image之外,我尝试了许多不同的变体,例如req.body.data.image.dataURL,req.body.data.image.dataURL.data,但目前为止还没有任何工作。 我的loggingreq.body.data.image显示:

 { file: { webkitRelativePath: '', lastModified: 1411073963000, lastModifiedDate: '2014-09-18T20:59:23.000Z', name: '3770316278.png', type: 'image/png', size: 32493 }, url: 'blob:http%3A//127.0.0.1%3A3000/cb20debc-8a3a-468f-ab5c-39299f7ec52b', dataURL: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACHCAYAAAC..... 

如何将图像保存到数据库?

编辑

我试图保存base64,之后的所有东西base64,req.body.data.image.dataURL到像这样的头像:

 var split = req.body.data.image.dataURL.split('base64,'); var type = split[0]; var data = split[1]; var avatar = { data: type, contentType:'image/png' }; 

保存消息仍然是:

 user.avatar = avatar user.save(function (err, user) {} 

但是我仍然得到错误TypeError: Cannot set property 'avatar' of null

因为我的问题发生了一些变化,所以我将其标记为已解决,新的问题在这里: 在MongoDB中显示Angular.js中的图像