如何提供图像到客户端nodejs和angular度

我试图发送.jog图像到客户端,但我失败了。

app.get('/image', function(req, res){; res.sendfile(path.resolve(path.resolve(__dirname,'/Imagepath/image.jpg"))); 

});

在我的angular度上

  $http({ method:'GET', url:'/image', }).then(function (response){ $scope.image= response.data; }) <img id="imgid" ng-src="{{image}}" width="500" height="400"/> 

问题是响应是一些二进制数据。 我怎样才能把它发送给我可以显示在img src上的数据。 如何在客户端的服务器文件夹中显示图像?谢谢。

除非需要将图像作为数据发送(例如,dynamic生成),否则可以将图像的path设置为src。

假设您使用的是express.js,则可以将其提供为静态内容: http : //expressjs.com/en/starter/static-files.html

 app.use(express.static('public')); 

并与一个图像存储在public/images/image.jpg你的angular码可以只加载图像:

 $scope.image = "/images/image.jpg" <img id="imgid" ng-src="{{image}}" width="500" height="400"/> 

可以理解的是, <img>标签不支持从二进制通过属性来源,所以你必须看另一个解决scheme。

您可以尝试使用TypedArrays和btoa函数将二进制编码转换为客户端的Base64。 那么你可以使用

 <img ng-src="data:image/JPEG;base64,{{myImage}}"> 

在AngularJS中如何从$ http.get返回图片

所以基本上你需要采取response.data并转换为base64,然后将其分配给$scope.image 。 之后,您可以使用上面引用的img标签来显示它。