置顶 【公测中】基于 Egg 的 CNode 社区
发布于 12 天前 作者 JacksonTian 5369 次浏览 最后一次编辑是 11 天前 来自 分享

更新:公测版本已经上线,请访问 http://egg.cnodejs.org/ ,如遇到任何问题,请提交issue https://github.com/cnodejs/egg-cnode/issues ,谢谢各位。

在近期,经过社区的小伙伴们的一起努力下,我们基于 Egg.js 将 nodeclub 进行了重写,重写后的代码仓库位于 https://github.com/cnodejs/egg-cnode

原版的 nodeclub 是 2012 年左右,在淘宝实习的某个同学实现的,当时的情况下,几乎没有多少人有过 Node.js 开发真实项目的经验,因此,该项目也存在诸多稚嫩之处,曾经也被 ITeye 的大佬批判过。

后来在 alsotang、题叶等人的维护下,CNode 经历过一次较大的重构,但那次重构没有对原来的项目进行根本性的改动,重点是用户体验层面的改动。因此 nodeclub 依然保持着比较古老的方式,express + ejs + mongoose 等。原项目缺乏一些工程性的问题:

  1. 基于 Callback 回调的风格,在维护上较为困难。
  2. 没有健壮的进程守护机制,纯粹依靠 PM2 。
  3. 目前该项目运行时也是单机模式,没有更好的可用性。

本次我们基于 ES 8、Egg 框架,在不改写业务逻辑,不改写 UI 、交互的前提下,对该项目完成了重写。重写之后的 egg-cnode 具有更好的特性,尤其是在可维护性上,有极大程度上的改进,在测试覆盖率方面,以更少的代码量实现了更高的覆盖率。重写过程历时 3 个礼拜,贡献人数 10 人,以社区协作的形式完成。

我们将在稍后的一个时间将新的版本进行上线测试,也欢迎大家关注我们新的代码仓库。最后感谢:@sinchang@thonatos@lqs469 等人参与的贡献。欢迎大家继续关注我们的项目。

72 回复

点赞

来自酷炫的 CNodeMD

学习 EggJS 的另一好项目

这个源码我觉得我要读一下。

赞,朴老师效率杠杠的。

目前正在闭关中,过程中基本上没参与,过后会抽时间 Review 下。

这个版本主要聚焦于旧代码迁移,尽量不涉及到优化。很多地方的用法不见得是合理的,有兴趣看源码的同学,可以提 PR 继续优化。

譬如:

  • ejs 重构为 nunjucks
  • 使用 egg-validate 来重构参数校验
  • docker 化部署
  • 使用 TS 重构 (未来的未来,等 tegg 出来后)

几天前就看到egg-cnode,期待!!!

界面也考虑更换么?还是保留现在的风格?

@mengdu 这些都好说,后面提 PR 优化即可。这个版本主要聚焦在于迁移,不做功能变更。

建议把发帖的测试接口对接到测试区,现在测试帖太烦人了

现在已经部署到这个新版本了吗?

年前还在想这个事儿,朴老师好快

@okoala 不要光点赞,来 Review

薅羊毛,欢迎使用 nodejs 做无栈开发:Enhancer 云开发平台 enhancer-logo(已去底).png

666,回复来自内测的新版 cnode

(@ο@) 哇~,👍

回复来自内测的新版 cnode

@atian25 新文档 #92 里补充过了,docker-compose 可以一键拉起整个环境了~

来自新版回复

66666,终于重写了

来自新版的赞

为什么clone下项目,运行npm run start 的时候 ,页面 js 和 css 没有加载进来,npm run dev 没问题 一起正常

image.png

@atian25 注册的时候,页面报错。。。

@nanzm npm run start 之前 执行下 npm run assets

@JacksonTian 发现了 是locals.js 这个中间件里的app.config.mini_assets 这个值是 undefined config里配置一下就好了

image.png

广州 CNoder 发来贺电

刚好可以拿来学习,入门egg一直没有适合的项目借鉴~

点赞👍👍

搜索还是一如既往的谷歌啊,能否做三个,百度的,本地数数据库的,根据需求使用,因为有时翻墙不方便,到时帖子由于都是技术贴,搜索出来一个个分析,才能解决问题,百度收录也不少。支持双栈最好。

@nanzm 唔,看到迟了,这个问题我加到文档里~ #95

名字终于可以改了

@thonatos 把项目clone下来了 能用cnode的数据吗 本地数据库一片空白。。。

@atian25 执行npm start 会报错 [egg-scripts] Start got error, see C:\Users\admin\logs\masteikely additional logging output abr-stderr.log [egg-scripts] Or use --ignore-stderr to ignore stderr at startup. 是还要配置其他东西吗

@ChEnZYKing see C:\Users\admin\logs\masteikely additional logging output abr-stderr.log

@ChEnZYKing 显而易见…不能(逃

缺少客户端测试sheet ^^

那么快么,刚刚还没有,现在就有了

新发布了。

朴老师给力

最近有点忙了,改天试试看看本地部署下

朴老师速度真是快啊,社区的力量确实大,我上个月还说要用eggjs重写一版,才写到一半,结果今天看到社区已经上线公测了

我现在一些项目,都是基于nodeclub 来进行的写的,对我的学习提供了很大的帮助,非常感谢cnode社区,现在又要有新的学习目标了

赞朴老师~

@FrankLiu 所以要关注社区~ 现在就可以直接参与进来,完善 cnode

很期待。。。,膜拜大神

厉害,记得去年 自己刚用egg ,做了一个特别简单的小demo,没想到,这都已经实际应用了。

赞,又一个egg的学习项目了~

期待,希望这个社区越来越好

以后会把这个域名映射到新的这个吗

回到顶部