搜尋

首頁  >  問答  >  主體

node.js - 请教关于Web多人协作编辑平台的后台设计?

现在我们学生小团队需要开发一个基于Web的在线协作平台,主要是进行文档的协作编辑。大概的需求是这样的:

我们想法是前端主要使用双页式Markdown编辑页面(理想目标Cmd Markdown 编辑阅读器https://www.zybuluo.com/mdeditor),静态页面为主,主要以通过Ajax进行前后端交互。

服务端最初考虑是使用Node.jsExpress框架进行后端开发(说明一下,应该部署会在UNIX/Linux系服务器,所以ASP可能不太行,之所以选择Node.js是因为了解Node.js对非阻塞IO效率较高,也想为了多深入掌握一门后台语言),采取服务端对前端传来Markdown解析然后发送HTML到前端,存储文档最初打算写入数据库。

现在主要的困惑是:

  1. 采用Node.js开发是否合适?实际这类应用(尤其是Google Doc,Office Online这种大型实际项目)主要是通过什么样的前后台设计?
  2. 如果只存储文档的话,采取文件存储+缓存服务器和采取数据库+缓存服务器那种比较合适?是否可以采取NoSQL?
  3. 文档存放在数据库的话,应该如何设计比较优?因为编辑时是分段分配任务,能否直接对文档分段存储再进行合并?
  4. 安全性方面,这种协作平台如何有效防止CSRF攻击?
  5. 是否有现成的开源类似项目参考(绝不是抄袭哦)?

本人也只刚学了一点Web入门,对这类业务的后台设计不是十分清楚,希望有专业人士指点一下,任何上述疑问或相关的回答都可以,十分感谢。

PHPzPHPz2796 天前697

全部回覆(5)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 11:45:47

    我推薦學習使用下Meteor

    學習成本,比學習 Node.js + Express快多了

    開發起來也不是一點點的快。
    在github上2萬多個星,超過這個星的,也沒多少開源專案的

    對於你們的需求:
    1. 同時編輯:meteor是一個即時的框架,也就說,一個人編輯了一個地方,其他人的終端會同時變,而且是根本不用刷新瀏覽器的
    2. 支援markdown:meteor裡markdown的package - Markdown-to-HTML processor
    3. Meteor是基於node.js + mongodb搭建起來的
    4. Meteor可以很輕鬆的一鍵部署到linux系統
    5. 沒有直接和多人協同文件編輯相關的開源專案。不過你們可以感受下Meteor的一個開源專案 Telescope
    6. 還有一個很特別的地方,透過簡單的幾個指令,就可以產生一個混合應用的app,同時支援ios和android

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 11:45:47

    建議看一下這個開源庫, 應該可以完美解決你的問題 https://github.com/ether/etherpad-lite

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 11:45:47

    Meteor不錯,但資料庫現在只支援mongodb。
    另外可以看firebase https://www.firebase.com/

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 11:45:47

    用git吧,推薦一個go寫的專案gogs,部署方便,一個2進位就ok

    回覆
    0
  • 阿神

    阿神2017-04-17 11:45:47

    推薦看下TeaKKi https://teakki.com etherpad的實作機制

    回覆
    0
  • 取消回覆