公司的项目使用的是Nodejs进行开发,基于两年的开发经验写了一些工具库,现在已经用在了上线项目中。 这些项目还在持续更新中,难免会有些瑕疵,欢迎issue和PR。
排名不分先后。
-
mongostate Data state machine. Support transaction in mongoose. 这个库是我们项目中的一个核心库,为什么这么说?Mongodb没有很好的实现Transaction,没有数据回滚的话,上线项目的数据会极容易造成污染(比如执行到一半的程序报了个错,前面更新的数据就是脏数据了)。这个问题困扰我很久,于是开发了这么一个核心库mongostate,基于mongoose的Transaction的实现。实现方案借鉴了FSM的理论。
-
mmq Mongodb-Message-Queue. 详情请戳基于mongodb实现的消息队列
-
koa-jwt-mongo Koa middleware to deal with JSON-web-token in mongodb 将JWT在mongodb中进行维护,是对koa-jwt中间件的一个补充
-
errrr Custom error class. 自定义的Error类,主要是为了方便。。。和内置的Error对象区分开来。
-
detector.io 基于socket.io实现的探针工具。主要用于项目调试,搭建一个socket.io-client即可对埋入探针的地方进行实时监控。配套的还有一个用RN开发的客户端,这里就不放上来了。
-
oss-serve Serve static web pages on Aliyun OSS. 使用阿里云OSS来Serve静态网站,用这个工具可以实现一键部署。增量更新。
-
mongoose-better-id A plugin for mongoose to generator better id 一个mongoose插件用于生成文档id,该id是可读的并且可以定制化的。如默认会生成这样的id:1610211329190(时间戳+三位自增数)
-
tlan Time nature langurage
console.log('today'.ending.is.over('12 hours'.after('today'.beginning))); //true
如果操作Date对象可以像说话一样,想想就不错。tlan是对一些内置类进行的方法补充。 -
koa-docs An automatic documentation generator for koa.js APIs 这是从外国友人Amandeep那里fork过来的项目,用于自动生成API文档,我对该库添加了PR做补充,已经被原作者merge。
-
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)。
赞
棒棒哒
mark 自豪地采用 CNodeJS ionic
顶顶顶,很实用,很赞
LZ给力,我也是一直觉得nodejs事务支持太差,不能用于对业务数据要求严苛的环境
@winglight 哈哈 可以尝试用一下mongostate,利用次态来维护事务,操作完成后将次态激活到源,发生错误的话直接取消次态。在事务过程中会将对应的源加锁,保证不被污染。目前这个项目经过高并发测试暂时没有发现问题。_(:з」∠)_ 如果发现问题,一定要给我提issue : )
好东西,支持,赞!收藏!
可爱的妹子,么么哒
马克
来自酷炫的 CNodeMD