在 MongoDB 中的 Angular.js 中显示图像

2024-01-09

我最近打开了另一个关于如何使用 node.js/mongoose 在 mongodb 数据库中存储图像的线程。 (使用猫鼬保存图像 https://stackoverflow.com/questions/27353346/saving-image-with-mongoose)

我有点成功了,但我很确定我目前的方式不是正确的方式。这也可能是我无法在前端显示存储的图像的原因。

我有两个问题:

  1. 如何使用当前配置显示图像
  2. 由于我的代码此时显然是错误的,我仍然想知道使用 mongoDB 存储图像的方法是什么。我是否应该只存储 URL 并将图像保存在我的文件服务器上?有谁有关于如何使用的工作示例GridFS与角度/节点/猫鼬?

这是我将图像保存到数据库的代码:

var split = req.body.data.image.dataURL.split('base64,');
// ... split until I get 'image/png' and the binary of my image
var avatar = {
  data: data,
  contentType: type
};
models.UserImages.create({ avatar: avatar, /* ... */})

和我的用于加载图像的 Angular Ctrl:

User.findAvatarByUser(data).success(function (data) {
    $scope.avatar = data[0].avatar.data;
});

这显示了 chrome 中的日志记录,包括。我得到的错误:

任何帮助将非常感激!

edit:在lostPixels提示之后,我尝试将图像保存到FS。经过一些麻烦之后我终于让它工作了。目前我会将图像保存到我的文件系统中,直到我知道我真正想如何处理这个问题。

如果有人遇到同样的问题,以下是我在后端保存图像的方法(我在 stackoverflow 上的某个地方找到了它,但不幸的是我丢失了将信用归功于正确的人的链接,抱歉;))

fs.writeFile(newImageLocation, data, 'base64', function (err) {
        if (err) throw err
        console.log('File saved.')
    });

尝试这样做:

将图像保存在 Node 中

ImageController.create({image: new Buffer(req.body.image, "base64")}, 
  function(err, img) {
      if(err) { return handleError(res, err); }
      return res.status(201).json(img);
  }
);

在 Node 中加载和解码

  ImageController.findById(req.params.id, function (err, img) {
    if(err) { return handleError(res, err); }
    if(!foto) { return res.send(404); }
    return res.json(img.toString('base64'));
  });

角度控制器

$http.get('/api/images/'+$scope.image._id).
  then(function (response) {
    $scope.imgSrc = response.data;
  }, function (response) {
  });

角度视图

<img ng-src="data:image/jpg;base64,{{imgSrc}}">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MongoDB 中的 Angular.js 中显示图像 的相关文章

随机推荐

  • 在 Pandas 中,如何将日期字符串转换为日期时间对象并将它们放入 DataFrame 中?

    import pandas as pd date stngs 2008 12 20 2008 12 21 2008 12 22 2008 12 23 a pd Series range 4 index range 4 for idx dat
  • 如何将光标移动到ckeditor5中的文本末尾

    ckeditor5 当我使用editor editing view focus 光标在文本的开头 如何将光标移动到文本的结尾 为此 请在编辑器模型 https ckeditor com docs ckeditor5 latest frame
  • Google 地图 V3 API - 超出查询限制,但只有 1 个请求

    最近 当我发送单个地理编码请求时 我开始从 Google Map API 收到 超出查询限制 状态响应 我真的很困惑为什么会发生这种情况 我绝对没有达到每日 2 500 条请求的限制 另外 如果我只是简单地发布我的请求 http maps
  • MySQL 是否有命令删除除 PRIMARY 索引之外的所有索引?

    我有一个数据库表 有一个索引 其中键名为 PRIMARY 类型为 BTREE 唯一为 YES 打包为 NO 列为 ID 基数为 728 排序规则为 A 我有一个在页面加载时运行的脚本 该脚本将条目添加到 MySQL 数据库表中 并从数据库表
  • 使用 Qt 从 SQLite 中选择

    我尝试在 Linux 上的 Qt 4 5 3 上处理 SQLite 数据库 我已经创建了数据库 然后 我尝试在 Qt 上执行选择 db QSqlDatabase addDatabase QSQLITE db setDatabaseName
  • 是否可以在 PHP 接口中创建可选方法?

    我正在开发一个 PHP 项目 我有几个需要实现接口的类 有些类不需要实现接口中定义的所有方法 是否可以仅以更干净的方式实现某些方法 接口指定了方法must由实现它的类来实现 你不能跳过一些 尽管你可以创建额外的 你可以做的就是将你的接口分成
  • 在 Java 8 中扩展 List

    我经常想将一个列表映射到另一个列表 例如 如果我有一个人员列表 并且我想要他们的姓名列表 我想要这样做 GOAL List
  • cd 程序文件错误:找不到位置参数

    PS C gt cd Program Files 当我发出这个命令时 我不知道为什么 但它不接受Program Files 相同的命令在中运行得很好cmd 这是它显示的错误 Set Location A positional paramet
  • 装饰基于类的视图的两种方法有什么区别?

    我正在编写一个继承自 ListView 的视图 并尝试将该视图限制为登录用户 https docs djangoproject com en dev topics class based views decorating in urlcon
  • 创建 HUE 颜色条

    我正在创建一个颜色选择器 现在我需要创建一个 HUE 颜色条 创建它的一种方法是通过 XAML 中的渐变停止点 例如
  • 方案和浅绑定

    define make lambda x lambda y cons x list y let x 7 p make 4 cons x p 0 我是计划和函数式程序的新手 所以我对遍历程序有点笨拙 但我知道如果我使用深度绑定 该程序将返回
  • 如何使用函数进行模板模板参数推导?

    考虑一组函数 例如 template lt class Fun gt void A const Fun template lt class Fun gt void B const Fun template lt class Fun gt v
  • GWT 1.6 项目战争布局 - 混合源代码和编译器生成的工件?

    刚刚完成了一个基于 GWT 1 5 的项目 我正在考虑如何迁移到 1 6 我很惊讶地发现 GWT 似乎想将其编译输出写入 war 目录 通常在该目录中将项目置于源代码控制之下 这背后的原因是什么 谷歌真的认为这是个好主意吗 是否有解决方法可
  • 如何从HDFS文件系统执行hadoop jar?

    我总是从本地文件系统执行作业 如下所示 hadoop jar home usr jar myjar jar com test TestMain 如何执行相同的命令 但 myjar jar 将位于 hdfs 中 就像是 hadoop jar
  • 如何转义字段名称方括号内的方括号

    我有一些生成列名的动态 SQL 一个简单的例子可能是这样的 SELECT dbo getSomething 123 Eggs scrambled or Bacon fried 最终的列名称应该是这样的 鸡蛋 炒 或培根 煎 如果我尝试运行它
  • 使用 LESS 递归获取当前索引

    我正在尝试做到这一点 我有一个像这样的数组 levels level one level two level three level four level five level six level seven level eight 每个级
  • iPhone超声波检测(超过22kHz)

    iphone 3GS及以上型号能检测到的最大频率是多少 我一直在探索iPhone音频 我需要在没有任何外部设备的情况下检测 22 kHz 的声音频率 是否可以 如果麦克风设计得好 它将有一个抗混叠滤波器 其滚降始于略低于奈奎斯特频率 以确保
  • ffmpeg水印处理速度很慢

    我正在开发一个视频处理项目并使用 ffmpeg 进行水印 我完全实现了我想要的 但问题是这个过程非常非常慢 我在 32 位操作系统 Microsoft Windows 8 64 位 CPU 上使用具有 4GB RAM 的英特尔智能第二代系列
  • iOS8中用户默认的plist文件存储在哪里?

    我找不到首选项 plist 文件 因为首选项文件夹为空 要获取库文件夹 我使用 println NSSearchPathForDirectoriesInDomains LibraryDirectory UserDomainMask true
  • 在 MongoDB 中的 Angular.js 中显示图像

    我最近打开了另一个关于如何使用 node js mongoose 在 mongodb 数据库中存储图像的线程 使用猫鼬保存图像 https stackoverflow com questions 27353346 saving image