金科地产webapp

最近接到一个房地产的webapp外包项目,需求很简单,有一些房地产的介绍,广告等。还有一个主要功能就是看图猜迷的游戏,从题库中随机抽取10道题,让用户回答,答题时间最短的一些人获胜,可以获得一些小礼品和购房几万元优惠。

由于最近写了两个模块ifile和iroute,于是打算在这个项目中用上这两个模块,也算投入生产环境了,后端语言于是定位nodejs,因为php好久不弄了有点生,可能开发效率上不如nodejs,再者nginx_lua需要自己的vps,费用上有点高。

最终项目线上地址:
项目url,用手机访问效果更佳:http://jingkepic.duapp.com
github开源项目地址:https://github.com/DoubleSpout/picture_riddle_game

于是到处找免费的nodejs空间,想多赚点外快么,哈哈,毕竟我是可以给开发商开空间费用的。后来找来找去找不到合适,首先一定要是国内的,因为访问速度的关系。最后当我想自己掏钱买阿里云的时候,发现我竟然通过了bae的试用,自然免费的空间没有理由不用,而且速度和易用性都很不错的。

不过免费空间还是有一些限制的,首先最令我蛋疼的事情是bae空间不支持编译c++模块,由于不知道bae空间的linux版本gcc版本所以无法提交编译好的模块。无奈在代码中打了很多补丁,重写了路由和静态文件路由规则。

第二比较蛋疼的事情就是,bae免费空间不支持log4js的日志记录,所以只能使用console.log或console.warn等方法来打印到输出流,bae会记录这些东西,还好代码中抽象了一层log4js的api,重写了那部分api不用全部代码查找替换了。

最后比较蛋疼的就是目前bae中的mongodb只有1G的空间,而且目前无法付费扩充,我怕开发商在开盘时候有很多人来玩这个游戏,也怕有人刷数据库,于是只能在代码层面做了些限制,比如ip地址单天的注册及答题次数,还有定时清理无效的答题记录等,保证最高效率的数据库利用。其实如果早知道有1G限制我就使用mysql了,唉。

代码很简单,用了mongoose一切都变得很简单,后台使用了kendoui也轻松不少,最后放上几个截图吧: