expressjs中间件的“res.sendFile”和angular度客户端的“ng-src”的组合不起作用

我正尝试用头像图片创build用户configuration文件; 我用multer成功上传了头像图片; 现在我正试图提供一个选项来编辑configuration文件; 作为编辑的一部分,我必须在客户端显示头像图片; 我已经在中间件中写了一个服务来使用res.sendFile返回头像图像;

中间件控制器:

exports.readAvatar = function(req, res) { if (req.user) { res.sendFile(path.resolve(__dirname + "/../../uploads/" + req.user.avatar)); } } 

我甚至从浏览器testing这个服务,并成功的工作,但是当我试图显示这个化身服务使用ng-src与数据url像下面的响应,它没有工作。

客户控制器:

 Users.avatar($routeParams.userId).then(function(data) { $scope.avatar = "data:image/jpeg;base64,"+data; }, function(errorResponse) { $scope.error = errorResponse.message }); 

HTML:

  <img data-ng-src="{{avatar}}" > 

当我GOOGLE时,我发现res.sendFile实际上是发送一个字节stream; 所以我试图把它转换成一个string,然后编码转换的string,并在ng-src中使用这个编码的string,但无济于事。 任何帮助将不胜感激/

您必须将正确的path值传递给ng-src

JS

 Users.avatar($routeParams.userId).then(function(response) { //capture whatever is necessary to show image $scope.user=response.data; }, function(errorResponse) { $scope.error = errorResponse.message }); 

HTML

 <img ng-src="/users/{{user._id}}/avatar"> 

欲了解更多信息 : https : //docs.angularjs.org/api/ng/directive/ngSrc