15
有什么理由不直接从客户端Javascript转到数据库吗?
可能重复: 编写Web“服务器少”应用程序 因此,假设我要构建一个Stack Exchange克隆,然后决定使用CouchDB之类的东西作为我的后端存储。如果我使用它们的内置身份验证和数据库级别授权,是否有任何理由不允许客户端Javascript直接写入可公开使用的CouchDB服务器?因为这基本上是一个CRUD应用程序,并且业务逻辑由“只有作者才能编辑他们的帖子”组成,所以我认为在客户端内容和数据库之间没有一层的必要性很高。我只是在CouchDB端使用验证,以确保没有人放入垃圾数据,并确保正确设置权限,以便用户只能读取自己的_user数据。渲染将通过类似于AngularJS的客户端完成。从本质上讲,您可能只拥有一个CouchDB服务器和一堆“静态”页面,因此一切顺利。您不需要任何类型的服务器端处理,而只需要一些可以处理HTML页面的内容即可。 向世界开放我的数据库似乎是错误的,但是在这种情况下,只要正确设置权限,我就无法想到为什么。这违背了我作为Web开发人员的本能,但我想不出一个很好的理由。那么,为什么这是个坏主意呢? 编辑:看起来这里有一个类似的讨论:编写Web“服务器少”应用程序 编辑:到目前为止,很棒的讨论,我感谢大家的反馈!我觉得我应该添加一些通用假设,而不是专门调用CouchDB和AngularJS。因此,我们假设: 数据库可以直接从其隐藏存储对用户进行身份验证 所有数据库通信都将通过SSL进行 数据验证可以(但不应这样做)由数据库处理 除了管理员功能外,我们关心的唯一授权是仅允许某人编辑自己的帖子 每个人都可以读取所有数据(除了可能包含密码哈希的用户记录之外),我们非常满意 管理功能将受到数据库授权的限制 没有人可以将自己添加为管理员角色 数据库相对容易扩展 真正的商业逻辑几乎没有,甚至没有。这是一个基本的CRUD应用