日期:2014-05-16  浏览次数:20418 次

nginx+node.js+mangodb+forever搭建的精准问答网站

最近用nginx+node.js+mangodb+forever搭建了一个精准问答网站:jie-w.com

大致的思路:用群体智慧实现答案的精准性,通过大众的力量来把一个问题的答案改进得越来越精确和实用,后人不断修正前人的观点,最初主要在程序员之间传播,不打算广泛的推广和运营,具体实现如下

1. 用户无需登录,任何人可以提问,任何人可以回答。

2. 问题发布后不能编辑,每个IP每天最多发布3个问题。

3. 每个问题的答案可以无限编辑,但每个IP每天只能编辑10次答案。

4. 只显示每个问题的最新答案,要查看答案修改历史,需要点击答案历史链接。

5. 每个问题都有标签,用户可以根据标签分类一些问题,提供按问题标题中的关键字进行搜索的功能。

6. 简单说,就是问答版维基百科。

7. 每个用户编辑答案后可以选择性地设置身份标识(1个iD+1个链接地址)

架构:

因为服务器(ubuntu)上目前不止host一个网站,前端用NGINX进行分流,把来自http://jie-w.com的访问全部导给node进程,虽然是双核机器,只启动了一个node进程,因为node容易crash(第一天crash了好多次),使用forever监控node进程,自动重启保证服务不间断。

数据库选择mangodb,因为所有的数据基本按条存储,只建了两个collection,一个用来存问题和最新答案,一个用来存历史答案。

node.js部分选择了compound.js框架,MVC模式方便开发,支持ORM定义数据库schema,前端也用了bootstrap,文本编辑器选择了bootstrap-wysiwyg。

基本功能全部实现,代码全部host在http://github.com/ydp/jie-w.git上了,开源。

接下来的工作:

1. 实现文本编辑器中的上传图片功能,和标签按钮自动生成;

2. 前端加设memcached存储用户IP和访问时间以及访问次数,以此拒绝恶意用户访问;

3. 加强搜索功能,开发管理员后台。

目前来说,据我自己调查,没有发现类似网站,有一点点反社交,但主要是为了保证内容的高质量,希望功能通过这个网站使得那些单个人无法解决的问题能够在这里解决,铲除时间和空间的限制,充分发挥群体智慧。

?