自己写的一些工具库,已经用于公司的商业项目。在此分享,不用赞我
发布于 1 年前 作者 miserylee 1736 次浏览 来自 分享

公司的项目使用的是Nodejs进行开发,基于两年的开发经验写了一些工具库,现在已经用在了上线项目中。 这些项目还在持续更新中,难免会有些瑕疵,欢迎issue和PR。

排名不分先后。

  1. mongostate Data state machine. Support transaction in mongoose. 这个库是我们项目中的一个核心库,为什么这么说?Mongodb没有很好的实现Transaction,没有数据回滚的话,上线项目的数据会极容易造成污染(比如执行到一半的程序报了个错,前面更新的数据就是脏数据了)。这个问题困扰我很久,于是开发了这么一个核心库mongostate,基于mongoose的Transaction的实现。实现方案借鉴了FSM的理论。

  2. mmq Mongodb-Message-Queue. 详情请戳基于mongodb实现的消息队列

  3. koa-jwt-mongo Koa middleware to deal with JSON-web-token in mongodb 将JWT在mongodb中进行维护,是对koa-jwt中间件的一个补充

  4. errrr Custom error class. 自定义的Error类,主要是为了方便。。。和内置的Error对象区分开来。

  5. detector.io 基于socket.io实现的探针工具。主要用于项目调试,搭建一个socket.io-client即可对埋入探针的地方进行实时监控。配套的还有一个用RN开发的客户端,这里就不放上来了。

  6. oss-serve Serve static web pages on Aliyun OSS. 使用阿里云OSS来Serve静态网站,用这个工具可以实现一键部署。增量更新。

  7. mongoose-better-id A plugin for mongoose to generator better id 一个mongoose插件用于生成文档id,该id是可读的并且可以定制化的。如默认会生成这样的id:1610211329190(时间戳+三位自增数)

  8. tlan Time nature langurage console.log('today'.ending.is.over('12 hours'.after('today'.beginning))); //true 如果操作Date对象可以像说话一样,想想就不错。tlan是对一些内置类进行的方法补充。

  9. koa-docs An automatic documentation generator for koa.js APIs 这是从外国友人Amandeep那里fork过来的项目,用于自动生成API文档,我对该库添加了PR做补充,已经被原作者merge。

  10. mongoose-json-diff Diff history plugin for mongoose documents mongoose插件,给schema添加若干方法,可以记录数据历史。和mongostate配合起来用效果极好。以后会出教程:D

以上所有库全部发布至npm。 安装方法 npm install xxx --save or yarn add xxx

再次欢迎issue和PR,这些项目都还年轻,如果你看得上,就用吧(所有项目都是MIT license)。

13 回复

顶顶顶,很实用,很赞

LZ给力,我也是一直觉得nodejs事务支持太差,不能用于对业务数据要求严苛的环境

@winglight 哈哈 可以尝试用一下mongostate,利用次态来维护事务,操作完成后将次态激活到,发生错误的话直接取消次态。在事务过程中会将对应的加锁,保证不被污染。目前这个项目经过高并发测试暂时没有发现问题。_(:з」∠)_ 如果发现问题,一定要给我提issue : )

好东西,支持,赞!收藏!

可爱的妹子,么么哒

马克

来自酷炫的 CNodeMD

@miserylee 能否告知一下“次态”的英文是什么?

mark 文档我感觉还是喜欢 apidoc

@KingTree 看 需求嘛,apidoc也用过,主要感觉不方便,要写好多注释。koa-docs的话 代码就是文档,方便很多,这个项目后期准备添加多一些功能,比如调试窗口等等

回到顶部