【问题标题】:Efficient way to display images(serve images) in MEAN stack application?在 MEAN 堆栈应用程序中显示图像(提供图像)的有效方法?
【发布时间】:2016-01-23 02:44:53
【问题描述】:
我正在开发一个 MEAN 堆栈应用程序,我想显示带有一些响应的图像。
确切要求:有搜索框,当用户输入图像的名称时,服务器应该响应该图像并且浏览器显示该图像。
我最多有 70 张图像,最大大小为 30kb。
我应该将这些存储在 mongoDB 中,并且对于每个请求节点服务器都点击 mongodb 并在响应中提供该图像,还是使用 Angular.js 提供它?
请推荐有效的方法。
【问题讨论】:
标签:
javascript
angularjs
node.js
mongodb
mean-stack
【解决方案1】:
您有超过 2mb 的数据,可以轻松缓存。从数据库传输到 Web 服务器或从磁盘检索是额外的工作。将所有图像加载到您的节点线程中,当关键字通过时发送缓存的图像。
【解决方案2】:
您可以在您的 expess.js 配置中为静态内容(CSS、图像等)设置一个文件夹,您可能会发现如下内容:
app.use(express.static(path.resolve('./public')));
app.use('/images',express.static(path.resolve('youPathToStaticimages')));
然后使用图像元数据创建一个集合,例如文件名、大小、上传日期、友好名称以及标签或您可以查询的任何其他字段。
然后使用端点/$resource 组合并检索数据并使用简单的 HTML 图像标记 (IMG) 在客户端显示图像并使用 ng-src,可能在 ngRepeat 中。
对我来说,这可能是最简单的方法,您也可以在 apache 或 ngnix 中为您的图像文件夹设置某种缓存策略。