如何将图像添加到环回模型?

时间:2017-08-23 02:58:29

标签: angular loopbackjs loopback angular-loopback

我创建了一个使用mongodb(mlab),loopback和angular 4的博客文章,我可以在我的angular 4网站上显示我的帖子,但是我不知道如何将图像添加到我在这里看到的环回模型JSON:
{     " title":" string",     "作者":"字符串",     " date":" string",// type可以是date     " body":" string",     " id":" string"  }

没有图像属性类型,所以我很困惑如何将我的图像网址添加到我的环回数据模型,以便在我的angular 4博客上显示它。我可以为每个帖子ID使用<img *ngIf="post.id === '599ce3147e0f7a32c812a6ac'" src="http://drvidyahattangadi.com/wp-content/uploads/2014/12/panchkarma3.jpg" alt="">但如果我有很多帖子,这将非常低效。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

在Loopback中使用Image类型的对象时,推荐的方法是为loopback应用程序创建组件存储。

npm install loopback-component-storage --save

您只需要在CLI中提供以下代码中的一系列答案。

$ slc loopback:datasource
[?] Enter the data-source name: storage
[?] Select the connector for storage: other
[?] Enter the connector name without the loopback-connector- prefix: loopback-component-storage
[?] Install storage (Y/n)

在datasource.json文件中,您的存储条目将被添加。

"storage": {
  "name": "storage",
  "connector": "loopback-component-storage",
  "provider": "filesystem",
  "root": "./files"
}

创建所需的“模型”后,您只需使用文件结构即可下载和上传图像。

ex:
POST /api/containers/container-name/upload

关注link将帮助您逐步创建环回中的组件存储和图像上传/下载功能。

答案 1 :(得分:0)

如果我能很好地理解你的问题,你就想为你的角度前端提供图像。在我工作的所有项目中,我们没有在数据库中保存图像。我们将图像保存在服务器硬盘上,并将URL添加到数据库中。

然后在角度方面,你只需要在img标签的src属性中设置URL。

如果您有许多图像,则可以使用其他服务器来提供图像以提高效率。

答案 2 :(得分:0)

您可以在“server”下创建的“storage”文件夹中创建文件夹“userassests”

  

文件夹结构:服务器&gt;存储&gt; userassests

在我们的用例中,我们在docker envioronment.in docker-compose.yml文件中托管了这个环回应用程序,我们将storage / userassest文件夹挂载到服务器位置。

之后您可以直接调用角度上传功能,如下所示。使用角度上传功能,您将获得文件输入,您可以使用上传指令完成操作。

 $scope.uploadPic = function (file) {
            Upload.upload({
              url: '/api/containers/userassets/upload',
              file: file
            }).then(function (response) {
              $scope.orgLogo = "/api/containers/userassets/download/" + response.data.result.files.file[0].name;
              file.result = response.data;
              $timeout(function () {
                $scope.result = response.data;
              });
            }, function (response) {
              if (response.status > 0) $scope.errorMsg = response.status + ': ' + response.data;
            }, function (evt) {
              // You can get upload progress here
              file.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));
            });
          }

执行此代码行后,您的图像资源将传输到服务器安装位置,而应用程序级别也会保存在storage / userassets文件夹中。

然后您可以使用API​​操作上传和下载。 希望这没问题......如果您需要进一步澄清,我很乐意提供。 干杯... !!

相关问题