如何在Node / Angular应用程序中存储或检索嵌入代码?

时间:2015-02-15 23:17:59

标签: javascript angularjs mongodb iframe embed

我想展示来自Youtube,Soundcloud和其他服务的嵌入式视频和音频。关于如何做到这一点,我有两个想法,并对其他人开放。

  1. 将完整的嵌入代码放入Mongo DB中。因此Angular中的代码为{{ item.embedCode }}。这看起来很简单,但如果嵌入代码发生变化,我必须更新数据库中的每个项目。

  2. 执行逻辑以在Angular代码中检索正确的嵌入代码。所以if ($scope.embedItem.type == 'youtube') { $scope.embedItem.embedCode = "YOUTUBE-EMBED-CODE-HERE" }。这里的缺点是增加了应用程序的大小,增加了加载时间。我可能有数百种嵌入类型。

  3. 只想知道其他方法是什么。

2 个答案:

答案 0 :(得分:1)

  

($ scope.embedItem.type =='youtube'){$ scope.embedItem.embedCode =“YOUTUBE-EMBED-CODE-HERE”}

该行少于100个字节,如果你有200个嵌入代码,那就是20kB(未压缩)的大小。如果您使用了查找数组,那么实际上只有数组本身的大小才重要,即

{ 'youtube' : 'http://youtube.com/...' }, 
   ...

将其与单独的120kB(缩小的)AngularJS进行比较 - 它应该不会给您带来麻烦。

关键是,很可能嵌入代码会发生变化,因此您现在必须为修改编写一段代码,必须对其进行测试,维护,更新和部署,可以使用等...

如果在更遥远的未来,你真的最终实现了1000个嵌入服务,你可以只向客户端发送相关的子集,并将其与客户端存储结合起来......这很容易优化,当它是非常重要。

我建议专注于准备好功能,仅在需要时进行优化。

答案 1 :(得分:0)

类似iFramely之类的内容只需向您提交您的网址即可获得数百个网站的嵌入代码。它是您在服务器上运行的开源节点应用程序。还有一个付费的云版本。

还有其他类似的服务,例如embedly,这完全是付费服务。

另一个是NoEmbed,它也是免费和开源的,但是用Perl编写。由于这个问题是关于Node应用程序的,我认为使用Node解决方案会更加熟悉。

这些都不是Angular模块,因此除了对iFramely / embedly服务的简单$http请求之外,代码不会膨胀。