【问题标题】:How to display an image tag with the ejs template engine for node js?如何使用 node js 的 ejs 模板引擎显示图像标签?
【发布时间】:2015-06-09 04:21:02
【问题描述】:

一些背景信息:我正在使用带有 express 框架的 node.js 以及 mongo 和 passport.js

所以基本上我能够使用 FB 登录名登录到我的应用程序并检索一些信息,例如用户名、令牌、ID、显示名称和照片。然后将此数据保存到我的数据库(mongo)中。

我可以使用 ejs 语法在我的视图中读取除图像之外的所有数据。

在我看来,我有以下图像代码:

<%= user.facebook.profilePic %>

这将返回以下输出:

https://graph.facebook.com/Grace Yip/picture?type=large

但是当我在浏览器中浏览此网址时,我收到以下错误消息

error: {
      message: "(#803) Some of the aliases you requested do not exist: Grace      Yip",
      type: "OAuthException",
      code: 803
}

我尝试将我的数据输出放在图像标签中,如下所示:

<%= img_tag( user.facebook.profilePic ) %>

然后我收到一条错误消息:错误:无法在视图目录“/Users/Grace/Desktop/QA/views”中查找视图“错误”。

当我删除 img_tag 代码时,视图再次工作。

知道如何显示图片...我不知所措。

提前致谢!

您好,

恩典

【问题讨论】:

    标签: node.js image mongodb ejs


    【解决方案1】:

    您需要使用 JavaScript 内置函数 encodeURI 对 URI 进行编码,因为 URI 中包含一个无效的空格:

    <%= img_tag(encodeURI(user.facebook.profilePic)) %>
    

    【讨论】:

    • 嗨 Chridam,我粘贴了您在我看来建议的代码,它只是返回 url 而不是图像 ..
    • @GY22 该网址是否包含空格?如果您浏览到该 URL,您会收到任何错误消息吗?如果没有,并且如果它返回任何数据,那么只需将其包装在您的图像标签&lt;%= img_tag(encodeURI( user.facebook.profilePic)) %&gt;
    • 不,网址现在不包含任何空格。输出为 => graph.facebook.com/Grace%20Yip/picture?type=large。但是当我在浏览器中浏览 url 时,我从上面收到错误消息:错误:{消息:“(#803)您请求的某些别名不存在:Grace Yip”,输入:“OAuthException”,代码:第803章
    • @GY22 从该错误消息中可以清楚地看出 API 无法识别别名 'Grace Yip'。你确定这是正确的 URI 吗?可能是mongodb中保存的值不对?
    • 是的,你是对的。我没有正确提取数据。现在我将它更改为用户的 id 并且它可以工作。谢谢你的帮助!!!
    【解决方案2】:

    我正在使用 user.facebook.profilepic 是来自graph facebook api 的bson 字符串路径图像http 和passport.js 你可以尝试申请bson str 路径

    .ejs 文件中的&lt;img src="&lt;%= user.facebook.profilepic %&gt;" alt=""&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 2020-12-24
      • 1970-01-01
      • 2021-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多