关于网站服务端,写一个提供 REST api 的服务器,还是直接操作 mongodb?

2015-11-29 18:22:50 +08:00
 timqian
前些日子尝试了 [meteor]( https://github.com/meteor/meteor) 虽然最后因为种种原因没有在项目中使用它,但感觉在前端直接操纵 mongodb 的感觉挺爽的。最近做项目的时候,考虑要不要使用这种方式。 google 了一番在 github 发现了这个项目: [express-restify-mongoose]( https://florianholzapfel.github.io/express-restify-mongoose/)。它把对 mongodb 的操作暴露成了 rest 接口。这样就可以用 http 请求对 mongodb 做所有操作。省去了开发 REST api server 的工作。
(关于 API 的安全性,还没有细看,但应该可以在用户请求路由时对用户进行认证和限制)
大家觉得这种方式怎么样?
2611 次点击
所在节点    程序员
10 条回复
xufang
2015-11-29 18:26:22 +08:00
MEAN JS 可能是你想要的。
odirus
2015-11-29 18:27:36 +08:00
用来学习还是可以的,但是如果是商业项目,尽量不要。
timqian
2015-11-29 18:34:56 +08:00
@odirus 谢谢回复,有什么缺点呢?能简单说说吗
odirus
2015-11-29 18:37:32 +08:00
@timqian 既然你直接在浏览器里面操作后面的数据,那其他人也能,现在的 js 反压缩工具太多了。所以如果是商业项目,很可能会被竞争对手注入某些东西直接擦除数据。
odirus
2015-11-29 18:40:57 +08:00
@timqian 无论是采用 Rest Api 还是其他方式,更主要的目的是对操作进行权限认证。
ghostheaven
2015-11-29 19:00:07 +08:00
从灵活性可扩展角度,应该用 restful 包一层
Kilerd
2015-11-29 19:00:28 +08:00
在前端直接操作 mongo ? 怎么做权限认证? 别闹好吗?
timqian
2015-11-29 19:01:39 +08:00
@odirus 这个问题应该可以解决的。可以根据用户的权限来限制路由的访问(后端,操作数据库之前),并且把所有没用到的路由都封起来。
timqian
2015-11-29 19:08:58 +08:00
@Kilerd 并不是直接操作,是自动暴露出 rest 接口,权限认证可以在操作之前做的
cnhongwei
2015-11-29 20:45:34 +08:00
@timqian 用户及权限我想也是保存在 mongo 中的,前端都可以直接访问了,权限很有可能被改写掉。当然你可以说,我可以考虑的很周全。不过,多大的公司都出过安全漏洞。所以,前端直接访问数据库和直接把数据库开放给所有人基本没有区别,况且还是一般只考虑性能,不考虑安全的 nosql 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/239834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX