【问题标题】:Display image in Background Url from MongoDB using NodeJS and Angular6使用 NodeJS 和 Angular6 在 MongoDB 的后台 URL 中显示图像
【发布时间】:2018-10-04 10:54:17
【问题描述】:

我在我的网站上创建了一个图片上传器,并将 URL 存储在我的 MongoDB 中。我使用本指南创建了我的图片上传器:https://appdividend.com/2018/05/25/angular-6-file-upload-tutorial/ 但是,当文件存储在我的 MongoDB 表中时,它是一个 C:\\fakepath\\ url。当我尝试通过 ngStyle 在背景图像 url 字段中显示 url 时,我得到了响应:

Cannot read property 'image' of undefined

这是我的 .html 页面代码:

<div class="jumbotron" [ngStyle]="{ 'background-image': 'url(' + post.image + ')'}"></div>

其余代码遵循图像存储指南。

如果有办法在 MongoDB 中修改 url 或消除 C:\\fakepath\\ 并将结尾附加到存储图像的 ./upload/ 文件夹中出色地。我也尝试过使用 {{post.image}} 语法并收到相同的结果。

【问题讨论】:

  • 当您在这种情况下考虑您的数据库、后端应用程序和前端应用程序时,您的设计可能需要重新考虑。

标签: node.js angular mongodb


【解决方案1】:

如果您真的收到数据,请检查网络调用 (帖子和网址)来自后端。

如果您要检查将后端响应分配给变量 post 的逻辑。

从错误来看,帖子似乎没有价值。或者你访问它 错误的方法。检查帖子是否为yourCtrl.post 或其他内容。

【讨论】:

  • 对于我从名为 post 的集合中提取的所有其他内容,例如正文,它是 {{post.body}} 并且可以完美导入。这只是图像,如果我也使用 nGModel 来提取正文,这将有效。
  • 你能在同一个 html 中拉出正文吗?因为从错误看来 post 没有任何价值。您能否分享更多您在帖子中分配/获取值的代码?
  • 我想我现在发现了问题,因为我正在将存储的图像与数据库中的 url 进行比较。首先是存储的 html 如何用于 post.image:&lt;input type="file" name="photo" ng2FileSelect [uploader]="uploader" class="uploads" [(ngModel)]="post.image"/&gt; 接下来,因为它通过上述指南中的路径和文件上传器运行。它在运行后更改名称并以不同的名称存储在数据库中。在上传文件夹中:photo-1538621204997..png 在数据库中:C:\\fakepath\\Screen Shot 2017-05-14 at 10.57.28 AM.png 知道改变这种情况的方法吗?
  • 太棒了!我不确定我是否理解正确,但您可以在保存到数据库之前添加您的逻辑。通常人们为每个文件创建一个模式名称然后保存。
  • 如果更改事件在按钮上但字段值本身在输入控件上,我该怎么做?这是两者的代码,输入:&lt;input type="file" name="photo" ng2FileSelect [uploader]="uploader" class="uploads" [(ngModel)]="post.image"/&gt; 按钮:&lt;button type="button" class="btn btn-success btn-s uploadBtn" (click)="uploader.uploadAll()" [disabled]="!uploader.getNotUploadedItems().length"&gt; Upload an Image &lt;/button&gt; 也感谢您的帮助,我是这些开发方式的新手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-22
  • 1970-01-01
  • 2015-03-13
  • 1970-01-01
  • 2019-01-20
  • 2023-04-05
  • 2020-06-20
相关资源
最近更新 更多