关于网站服务端,写一个提供 REST api 的服务器,还是直接操作 mongodb? - V2EX
请不要在回答技术问题时复制粘贴 AI 生成的内容
timqian
10.02D

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

  •  
  •   timqian
    timqian Nov 29, 2015 3172 views
    This topic created in 3823 days ago, the information mentioned may be changed or developed.

    前些日子尝试了 meteor 虽然最后因为种种原因没有在项目中使用它,但感觉在前端直接操纵 mongodb 的感觉挺爽的。最近做项目的时候,考虑要不要使用这种方式。 google 了一番在 github 发现了这个项目: express-restify-mongoose。它把对 mongodb 的操作暴露成了 rest 接口。这样就可以用 http 请求对 mongodb 做所有操作。省去了开发 REST api server 的工作。
    (关于 API 的安全性,还没有细看,但应该可以在用户请求路由时对用户进行认证和限制)
    大家觉得这种方式怎么样?

    10 replies    2015-11-29 20:45:34 +08:00
    xufang
        1
    xufang  
       Nov 29, 2015
    MEAN JS 可能是你想要的。
    odirus
        2
    odirus  
       Nov 29, 2015
    用来学习还是可以的,但是如果是商业项目,尽量不要。
    timqian
        3
    timqian  
    OP
       Nov 29, 2015
    @odirus 谢谢回复,有什么缺点呢?能简单说说吗
    odirus
        4
    odirus  
       Nov 29, 2015
    @timqian 既然你直接在浏览器里面操作后面的数据,那其他人也能,现在的 js 反压缩工具太多了。所以如果是商业项目,很可能会被竞争对手注入某些东西直接擦除数据。
    odirus
        5
    odirus  
       Nov 29, 2015   1
    @timqian 无论是采用 Rest Api 还是其他方式,更主要的目的是对操作进行权限认证。
    ghostheaven
        6
    ghostheaven  
       Nov 29, 2015
    从灵活性可扩展角度,应该用 restful 包一层
    /td>
    Kilerd
        7
    Kilerd  
       Nov 29, 2015
    在前端直接操作 mongo ? 怎么做权限认证? 别闹好吗?
    timqian
        8
    timqian  
    OP
       Nov 29, 2015
    @odirus 这个问题应该可以解决的。可以根据用户的权限来限制路由的访问(后端,操作数据库之前),并且把所有没用到的路由都封起来。
    timqian
        9
    timqian  
    OP
       Nov 29, 2015
    @Kilerd 并不是直接操作,是自动暴露出 rest 接口,权限认证可以在操作之前做的
    cnhongwei
        10
    cnhongwei  
       Nov 29, 2015   1
    @timqian 用户及权限我想也是保存在 mongo 中的,前端都可以直接访问了,权限很有可能被改写掉。当然你可以说,我可以考虑的很周全。不过,多大的公司都出过安全漏洞。所以,前端直接访问数据库和直接把数据库开放给所有人基本没有区别,况且还是一般只考虑性能,不考虑安全的 nosql 。
    About     Help     Advertise     Blog     API     FAQ     Solana     3072 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 11:56 PVG 19:56 LAX 04:56 JFK 07:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86