CNode

【已正式上线】基于 Egg 的 CNode 社区

分享
JJacksonTian发布于8 年前最后回复7 年前352 回复41579 浏览0 收藏

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

在近期,经过社区的小伙伴们的一起努力下,我们基于 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 等人参与的贡献。欢迎大家继续关注我们的项目。

查看回复

回复 (197)

L
Lizhooh#1·8 年前
F
Freen247#2·8 年前

点赞

来自酷炫的 CNodeMD

A
atzcl#3·8 年前

学习 EggJS 的另一好项目

L
liangtongzhuo#4·8 年前

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

A
atian25#5·8 年前

赞,朴老师效率杠杠的。

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

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

譬如:

  • ejs 重构为 nunjucks
  • 使用 egg-validate 来重构参数校验
  • docker 化部署
  • 使用 TS 重构 (未来的未来,等 tegg 出来后)
X
xingo4#6·8 年前

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

M
mengdu#7·8 年前

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

A
atian25#8·8 年前
引用 mengdu界面也考虑更换么?还是保留现在的风格?

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

W
waitingsong#9·8 年前

不错

K
k-water#10·8 年前

点赞

Z
zco4321#11·8 年前

点赞

1
1316346949#12·8 年前

C
CarlosRen#13·8 年前

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

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

I
i5ting#15·8 年前

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

G
gnipbao#16·8 年前

666

X
xjh22222228#17·8 年前

期待!

O
okoala#18·8 年前

点赞

A
atian25#19·8 年前
引用 okoala点赞

@okoala 不要光点赞,来 Review

J
jquery#20·8 年前

薅羊毛,欢迎使用 nodejs 做无栈开发:Enhancer 云开发平台

enhancer-logo(已去底).png

L
liuqipeng417#21·8 年前

期待

F
fengmk2#22·8 年前

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

T
thonatos#24·8 年前

(@ο@) 哇~,👍

回复来自内测的新版 cnode

A
atian25#25·8 年前

6666

T
thonatos#26·8 年前

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

N
ngot#27·8 年前

来自新版回复

J
Justin-lu#28·8 年前

6666

J
JerrysShan#29·8 年前

66666,终于重写了

O
okoala#30·8 年前

来自新版的赞

N
nanzm#31·8 年前

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

image.png

A
alsotang#33·8 年前

666666666

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

J
JacksonTian#35·8 年前

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

N
nanzm#36·8 年前
引用 JacksonTian@nanzm npm run start 之前 执行下 npm run assets

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

image.png

Z
zysam#37·8 年前

广州 CNoder 发来贺电

S
steambap#38·8 年前

支持支持

W
webkws#39·8 年前

支持支持

L
lianhr12#40·8 年前

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

F
forl#41·8 年前

nice!

L
lqs469#42·8 年前

点赞👍👍

T
thonatos#43·8 年前

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

J
JarvisQJ#44·8 年前

名字终于可以改了

W
web-L#46·8 年前

666

C
ChEnZYKing#47·8 年前
引用 thonatos@nanzm 唔,看到迟了,这个问题我加到文档里 95

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

C
ChEnZYKing#49·8 年前
引用 atian25@ChEnZYKing 你说呢...

@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. 是还要配置其他东西吗

A
atian25#50·8 年前
引用 ChEnZYKing@atian25 执行npm start 会报错 [egg scripts] Start got error, see C:\Users\admin\logs\masteikely addit...

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

D
dengnan123#51·8 年前

666

K
kidbai#53·8 年前

6666

D
dbit-xia#54·8 年前

缺少客户端测试sheet ^^

D
dbit-xia#55·8 年前

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

J
JacksonTian#56·8 年前

新发布了。

X
xudafeng#57·8 年前

朴老师给力

Z
Zephyr90#58·8 年前
F
fairyly#59·8 年前

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

F
FrankLiu#60·8 年前

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

F
falost#61·8 年前

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

Y
yorkie#62·8 年前

赞朴老师~

L
liupei1995#64·8 年前

很期待。。。,膜拜大神

Z
zhoumingque#65·8 年前

赞一个

Y
yqzyou#66·8 年前

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

K
koroshi#67·8 年前

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

S
salamander-mh#68·8 年前

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

G
gzcisco720#69·8 年前

点赞

J
JerrysShan#70·8 年前

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

L
lqs469#71·8 年前
L
leizongmin#72·8 年前

666

H
hhpop8#73·8 年前

数据库脚本在哪呀,本地搭试试

L
layupbolon#74·8 年前

点赞!

From cnode-with-umi

J
jeremy16601#75·8 年前

太炫了!

S
sonong#76·8 年前
F
fomenyesu#77·8 年前

赞,egg越来越强大了。

S
shileima#78·8 年前

timg.jpg 这个编辑器不能直接显示图片吗?pc_20180228143027.png

Y
yokingma#79·8 年前

学习中,最喜欢的就是看cnode的源码,学习的贼快,辛苦了!

Z
zhaoxixiong#80·8 年前

期待,最近正想研究 egg

这个项目代码没写完吗?我看登录成功了顶部还是显示登录按钮

1
13241491189#82·8 年前

666

T
thonatos#83·8 年前

唔,原来已经上线了,👍

G
ghostcode#85·8 年前

我怎么说,登录状态没了!

X
xjchenhao#86·8 年前

反馈个问题,找回密码 邮件收不到。

P
panpan123456#87·8 年前

没办法输入用户密码,总是跳转到internal server error 500

P
panpan123456#88·8 年前
W
wbget#89·8 年前

社区版,git登陆上不去了。

Cannot GET /passport/github/callback
F
five6#90·8 年前

不错

Q
qxl1231#91·8 年前

不出

H
hackjus#92·8 年前
引用 Zephyr90

a try

F
frank320#93·8 年前

点赞

X
xiaozhouge#94·8 年前

点赞

M
myisliuyuchuan#95·8 年前
引用 hackjusa try

你好呀

M
myisliuyuchuan#96·8 年前

你好呀

M
myisliuyuchuan#97·8 年前

测试

M
myisliuyuchuan#98·8 年前

测试测试ceshi1

M
myisliuyuchuan#99·8 年前

你好

1
1921205767#101·8 年前

不错

T
tiankongzhichengblank#102·8 年前
引用 Lizhooh期待 From PWA CNode

123vue-cnode-mobile

J
justlikeyourdad#103·8 年前

赞一个!

1
1353445394#104·8 年前
1
1353445394#105·8 年前
1
1353445394#109·8 年前
1
1353445394#110·8 年前

好难

1
1353445394#113·8 年前

321

1
1353445394#114·8 年前

321

1
1353445394#115·8 年前
引用 1353445394321

aaa

1
1353445394#117·8 年前

111

1
1353445394#118·8 年前
引用 1353445394111

222

1
1353445394#119·8 年前

李凯

1
1353445394#120·8 年前

222

1
1353445394#122·8 年前
X
XT-515#124·8 年前

keyi

X
XT-515#125·8 年前

嘿嘿

X
XT-515#126·8 年前

99

B
bwebwrbrwe#127·8 年前
引用 XT-515keyi

asssssssssd

B
bwebwrbrwe#128·8 年前
引用 XT-515keyi

asssssssssd

B
bwebwrbrwe#129·8 年前
引用 XT-515嘿嘿

asssssssssdsssss

B
bwebwrbrwe#130·8 年前
引用 XT-51599

99999999999999999

B
bwebwrbrwe#131·8 年前
引用 XT-515嘿嘿

asdasd

B
bwebwrbrwe#133·8 年前
引用 XT-515keyi

99999999999999999

B
bwebwrbrwe#134·8 年前

111111111111111

B
bwebwrbrwe#135·8 年前
引用 bwebwrbrwe123

edeafafafffefew

B
bwebwrbrwe#136·8 年前
引用 XT-515嘿嘿

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

B
bwebwrbrwe#137·8 年前
引用 XT-515嘿嘿

scascas

A
AjingR#138·8 年前

@yaoyaowen11 shilierong吃屁

C
ciyo3847#139·8 年前

1

S
Sia0128#140·8 年前

好棒!

P
Primroses#141·8 年前

好棒

B
bwebwrbrwe#142·8 年前
引用 Primroses好棒

vwebeber

B
bwebwrbrwe#143·8 年前
引用 Primroses好棒

vrwegwegwrgw

B
bwebwrbrwe#144·8 年前
引用 Primroses好棒

擦破你妈

Q
qishuangyan#145·8 年前

dsddsd

O
Oops12#146·8 年前

123

Q
qishuangyan#147·8 年前

fsfsdgfdsgdsg

Y
yidahis#148·8 年前

666

D
dbit-xia#149·8 年前

刚刚用github登录报错了 Cannot GET /passport/github/callback @JacksonTian

A
AjingR#150·8 年前

点赞

A
AjingR#151·8 年前

666

A
AjingR#152·8 年前

法国的效果相当高的

1
1353445394#153·8 年前
1
1353445394#154·8 年前

mlgb

1
1353445394#155·8 年前

wrnmmp

A
AjingR#156·8 年前
M
myisliuyuchuan#157·8 年前

你哈

A
AjingR#158·8 年前
引用 Sia0128好棒!

@Sia0128 hahah

A
AjingR#159·8 年前
引用 myisliuyuchuan你哈

@myisliuyuchuan fgf

A
AjingR#160·8 年前
引用 myisliuyuchuan你哈

@myisliuyuchuan jhohk

A
AjingR#161·8 年前
引用 myisliuyuchuan你哈

@myisliuyuchuan hvkhjk

A
AjingR#162·8 年前
引用 1353445394wrnmmp

@1353445394 jjk

Q
qishuangyan#163·8 年前

addddd

M
myisliuyuchuan#164·8 年前
引用 waitingsong不错

@waitingsong 急诊科大学女方家看电视

1
1353445394#165·8 年前

mmp

M
myisliuyuchuan#166·8 年前

@BelieveMIN 借款方个健康

M
myisliuyuchuan#167·8 年前

@yaoyaowen11 时代峻峰he

1
1353445394#168·8 年前
H
hao1525266601#169·8 年前
引用 1316346949

@1316346949:

Q
qishuangyan#170·8 年前
引用 qishuangyanaddddd

@qishuangyan asdsadsfdsfdsf

L
leewr#171·8 年前

11111

S
Sanmouren#175·8 年前
1
1708a#176·8 年前
L
LuckyZhangWeiwei#177·8 年前
1
17600013600#179·8 年前

不错啊。

Z
zWorker9902#181·8 年前

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

Z
zWorker9902#182·8 年前

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

T
tan2016#184·8 年前
T
tan2016#185·8 年前
引用 Lizhooh期待 From PWA CNode

@Lizhooh good

D
DavidCHN#186·8 年前
V
varscc#187·8 年前

厉害,给人看起来很清爽

Z
zkassing#188·8 年前

S
sonong#189·8 年前
引用 nanzm@JacksonTian 发现了 是locals.js 这个中间件里的app.config.mini assets 这个值是 undefined config里配置一下就好了

@nanzm app.config.mini_assets 这个值是 undefined config里配置一下就好了,这里的配置指的是在config.prod.js里 加一行exports.mini_assets = true;吗?我加上了 却也还是npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! cnode@1.0.0 assets: loader app/view app/ npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the cnode@1.0.0 assets script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\sonong\AppData\Roaming\npm-cache_logs\2018-0

S
sonong#190·8 年前
引用 nanzm@JacksonTian 发现了 是locals.js 这个中间件里的app.config.mini assets 这个值是 undefined config里配置一下就好了

@nanzm npm run assets,执行报错0 info it worked if it ends with ok 1 verbose cli [ 'C:\Program Files\nodejs\node.exe', 1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js', 1 verbose cli 'run', 1 verbose cli 'assets' ] 2 info using npm@5.6.0 3 info using node@v8.11.3 4 verbose run-script [ 'preassets', 'assets', 'postassets' ] 5 info lifecycle cnode@1.0.0preassets: cnode@1.0.0 6 info lifecycle cnode@1.0.0assets: cnode@1.0.0 7 verbose lifecycle cnode@1.0.0assets: unsafe-perm in lifecycle true 8 verbose lifecycle cnode@1.0.0assets: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\gitendclub\node_modules.bin;C:\Program Files\Microsoft MPI\Bin;C:\Program Files (x86)\Intel\iCLS Client;C:\Program Files\Intel\iCLS Client;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Common Files\Autodesk Shared;C:\Program Files\Microsoft SQL Server\110\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn;C:\Program Files\Microsoft SQL Server\110\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn;C:\Program Files\dotnet;C:\Program Files\Git\cmd;C:\WINDOWS\System32\OpenSSH;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs;C:\Users\sonong\AppData\Local\atom\bin;C:\Users\sonong\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\Microsoft VS Code\bin;C:\Users\sonong\AppData\Roaming\npm 9 verbose lifecycle cnode@1.0.0assets: CWD: C:\gitendclub 10 silly lifecycle cnode@1.0.0assets: Args: [ '/d /s /c', 'loader app/view app/' ] 11 silly lifecycle cnode@1.0.0assets: Returned: code: 1 signal: null 12 info lifecycle cnode@1.0.0assets: Failed to exec assets script 13 verbose stack Error: cnode@1.0.0 assets: loader app/view app/ 13 verbose stack Exit status 1 13 verbose stack at EventEmitter. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:285:16) 13 verbose stack at emitTwo (events.js:126:13) 13 verbose stack at EventEmitter.emit (events.js:214:7) 13 verbose stack at ChildProcess. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14) 13 verbose stack at emitTwo (events.js:126:13) 13 verbose stack at ChildProcess.emit (events.js:214:7) 13 verbose stack at maybeClose (internal/child_process.js:925:16) 13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) 14 verbose pkgid cnode@1.0.0 15 verbose cwd C:\gitendclub 16 verbose Windows_NT 10.0.17134 17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "assets" 18 verbose node v8.11.3 19 verbose npm v5.6.0 20 error code ELIFECYCLE 21 error errno 1 22 error cnode@1.0.0 assets: loader app/view app/ 22 error Exit status 1 23 error Failed at the cnode@1.0.0 assets script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 1, true ]

S
sonong#191·8 年前
引用 JacksonTian@nanzm npm run start 之前 执行下 npm run assets

@JacksonTian 朴大 npm run assets 报错,13 verbose stack Error: cnode@1.0.0 assets: loader app/view app/,最终导致npm run start 失败

G
gofromzero#192·8 年前

前来学习

来自酷炫的 CNodeMD

S
sonong#193·8 年前
引用 lqs469@sonong 已加入搜索功能 https://github.com/cnodejs/egg cnode/pull/107

@lqs469 搜索.png 配了local 中文搜索 搜不出 会是什么原因?

S
sonong#195·8 年前
引用 lqs469@sonong https://github.com/cnodejs/egg cnode/issues/106 issuecomment 406928034

@lqs469 感谢大神,晚上回去测一下再反馈。

T
thxallvu#196·8 年前

我有个小小问题想问下,希望能得到回复~~~~ 在model中

from_wp: { type: Boolean }

这字段是干什么的呢,没看到相关代码哦?

J
Jeepeng#197·7 年前
参与回复
登录后即可参与回复。登录