我可以在javascript SPA中使用ravendb吗?

时间:2013-09-12 16:54:55

标签: ravendb single-page-application

我正在开发一个对大多数前端逻辑使用backbone.js的应用程序,并且正在考虑使用sqlite进行存储,但是我遇到了一些并发症,需要切换到另一个NoSQL数据库

我在ravendb的网站上看到它是用C#创建的,你需要一个.net编译器。大多数文档都是针对ASP MVC类型的应用程序。我不能这样做,因为我们正在开发这个平板电脑应用程序,在客户端没有基于微软的技术(因为我们希望它与Android和苹果一起工作)

然而,服务器将是.NET,因此我认为这可能是可行的。只是想知道这是否值得追求,如果有人有使用ravendb的经验?或者我应该选择mongodb?

3 个答案:

答案 0 :(得分:5)

可能将RavenDB直接暴露给JavaScript应用程序,当然。但通常不建议这样做。主要原因是安全性,但还有许多其他原因需要中间层。

例如,您经常需要服务器端位置来执行应用程序逻辑。并非一切都可以在数据库本身完成,如果你在应用程序中完成所有操作,那么你可能会向应用程序发送比实际需要更多的数据。在互联网上,这可能意味着一个缓慢的应用程序。

许多人采用的路线是使用ASP.Net WebAPIServiceStack或其他类似的框架。这为您提供了一种公开JavaScript应用程序可以调用的REST端点的方法。您可以从那里连接到RavenDB。

此外,您似乎有误解,如果您在服务器上使用ASP.Net MVC,则无法定位Apple或Android。那只是假的。无论您使用SPA方法还是传统方法,您都可以提供基于标准的内容,例如HTML,CSS,JSON和JavaScript。

答案 1 :(得分:2)

是的,你可以使用它。实际上RavenDB的服务器是一个RESTful Web服务,这意味着您可以使用任何类型的HTTP客户端。这些客户端应该能够发布标准HTTP谓词,例如GETPUTDELETE等。

答案 2 :(得分:0)

ASP MVC是服务器端。我仍然不知道你为什么要将你的数据库暴露给客户端部分。它完全值得在服务器端部件中进行,但不要直接向客户端公开类似db的内容。