资讯专栏INFORMATION COLUMN

浮生漫记0.5版本记录

everfly / 846人阅读

摘要:迄今为止我的那个小网站已经发布到网上了,然而功能还在迭代中,真的说起来的话,现在距离版本的发布,还差。于是改为了,接收,然后把通用的体扔给的形式。每个页面进入时需要调用检查。以方便错误处理。包的连接池,不关闭,最多个连接,多了会爆掉。

迄今为止我的那个小网站已经发布到网上了,然而功能还在迭代中,真的说起来的话,现在距离1.0版本的发布,还差50%。现在记录一下之前做的一些内容,以及一些技术路线方面的改进吧:

首先,这是一个用于我个人统计研究和展示的网站,当前的核心是一个CMS系统,想要统计用户发布信息的关键词与情感趋势

最初的想法是在zuiwan.org的基础上,做一个二级网站。所以在服务端技术架构上,依然沿用主站的NODE+EXPRESS的方法,服务器没有采用一直使用的MongoDB,而是换成了MySQL,也方便后期上Java或者PHP。

前端架构上,也没有采用主站的VUE,而是沿用了我更加熟练的NG1.5。

服务端结构:

Index->Router->Model->DAO->MySQL => HTTP型api访问流
Index->static => 静态页面访问流
Index->socket.io Handler->Model->DAO->MySQL => socket接口访问流

最初是没有socket.io的,当时试图直接用普通的HTTP接口来实现,但是实时性需要用计时器来轮训,后来考虑到后期扩展,直接使用了socket.io。

model层最初被用来做黏合,接收的是req,res,然后直接在model层做了res.end()。但是后期在扩展socket的时候发现,这样会导致耦合度激增。于是改为了,接收data,cb,然后把通用的response体扔给cb的形式。

在之前的设计里,我一直不知道model层该如何设计,为何router不能直接与dao进行调度和数据交换。然后看到他们的java实体类——天了噜,为何一个Model要对应一个dao,这岂不是更没有道理了。

后来我真正开始自己的写法的时候,就找到了一点点思路——比如用户模块,一方面对上层接受的是路由过来的各种相关方法,一方面,并不只是对应一个user的Dao方法,其实涉及到很多个dao,比如token、relation等等。而token这个dao,也不可能多带带拿一个Model去对应。——这是我的思路。

这么说来,其实我是少了Controller层。感觉java里Model封装了dao之后,在Controller里调用了各个Model。但是我暂时还没有找到这样的优势。所以还是沿用自己的思路吧。

另外,在与MySQL交互的时候,我抽取了一个dao的封装,暴露了一个query方法,作为各个dao的根基,上面的dao就只需要写dao.query(str, cb)就好了。

前端:

标准的NG1.5+UI-Router,BS做了上层样式展现。只是我一直用不惯UI.BootStrap。导致我现在还在用BS苦苦支撑。

Socket对接沿用了之前的代码、service用来存储全局变量。每个页面进入时需要调用session检查。

其他的无甚好说了。

经验教训:

1.NodeJS编程中,接口的回调参数,默认是err, data。以方便错误处理。

2.NG-repeat是支持子变量过滤的,自动的。

3.新学了express-session。

4.mysql包的连接池,不关闭,最多10个连接,多了会爆掉。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86684.html

相关文章

  • JavaScript-数组

    摘要:什么是数组数组是值的有序集合。这个位置用数字表示叫索引数组用字符串表示叫关联数组。 什么是数组 数组是值的有序集合。数组中的每个值叫一个元素,每个元素在数组中都有一个唯一的位置。这个位置用数字表示叫索引数组;用字符串表示叫关联数组。数组的元素可以是不同的类型可以动态的向数组差人新元素,或者删除指定元素 一维数组 定义数组 定义数组的方式有三种 /*数组字面量方式定义数组*/ var a...

    XanaHopper 评论0 收藏0
  • PHPRAP v1.0.5版本发布了,修复BUG及注册页面增加注册口令项

    摘要:,是一个轻量级开源接口文档管理系统,致力于减少前后端沟通成本,提高团队协作开发效率,打造版的。官方网站演示网站作者博客官方群 PHPRAP,是一个PHP轻量级开源API接口文档管理系统,致力于减少前后端沟通成本,提高团队协作开发效率,打造PHP版的RAP。 更新记录 【修复】修复PHP7.1下报db()函数缺少默认参数的BUG 【修复】修复未登录状态下注册页不断弹出修改默认密码的BU...

    luck 评论0 收藏0
  • PHPRAP v1.0.5版本发布了,修复BUG及注册页面增加注册口令项

    摘要:,是一个轻量级开源接口文档管理系统,致力于减少前后端沟通成本,提高团队协作开发效率,打造版的。官方网站演示网站作者博客官方群 PHPRAP,是一个PHP轻量级开源API接口文档管理系统,致力于减少前后端沟通成本,提高团队协作开发效率,打造PHP版的RAP。 更新记录 【修复】修复PHP7.1下报db()函数缺少默认参数的BUG 【修复】修复未登录状态下注册页不断弹出修改默认密码的BU...

    zacklee 评论0 收藏0
  • PHPRAP v1.0.5版本发布了,修复BUG及注册页面增加注册口令项

    摘要:,是一个轻量级开源接口文档管理系统,致力于减少前后端沟通成本,提高团队协作开发效率,打造版的。官方网站演示网站作者博客官方群 PHPRAP,是一个PHP轻量级开源API接口文档管理系统,致力于减少前后端沟通成本,提高团队协作开发效率,打造PHP版的RAP。 更新记录 【修复】修复PHP7.1下报db()函数缺少默认参数的BUG 【修复】修复未登录状态下注册页不断弹出修改默认密码的BU...

    explorer_ddf 评论0 收藏0
  • 使用sysbench对mysql压力测试

    摘要:实际的表结构上面的测试命令代表的是对进行基准测试,表数量,每表行数约几乎多少就会的多少,并且是非事务的只读测试,持续,并发线程数。当然如果是做两组性能对比压测,因为都受这个因素影响,关心也不大。参考介绍与使用测试性能使用手册本文链接地址 sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:https...

    Null 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<