GithubHelp home page GithubHelp logo

cnodejs / nodeclub Goto Github PK

View Code? Open in Web Editor NEW
9.3K 592.0 3.1K 9.29 MB

:baby_chick:Nodeclub 是使用 Node.js 和 MongoDB 开发的社区系统

Home Page: http://cnodejs.org/

License: MIT License

JavaScript 90.85% HTML 6.39% CSS 1.23% Makefile 0.10% Less 1.43%

nodeclub's Introduction

Nodeclub

build status codecov.io David deps node version

介绍

Nodeclub 是使用 Node.jsMongoDB 开发的社区系统,界面优雅,功能丰富,小巧迅速, 已在Node.js 中文技术社区 CNode(http://cnodejs.org) 得到应用,但你完全可以用它搭建自己的社区。

安装部署

不保证 Windows 系统的兼容性

线上跑的是 Node.js v8.12.0,MongoDB 是 v4.0.3,Redis 是 v4.0.9。

1. 安装 `Node.js[必须]` `MongoDB[必须]` `Redis[必须]`
2. 启动 MongoDB 和 Redis
3. `$ make install` 安装 Nodeclub 的依赖包
4. `cp config.default.js config.js` 请根据需要修改配置文件
5. `$ make test` 确保各项服务都正常
6. `$ node app.js`
7. visit `http://localhost:3000`
8. done!

测试

跑测试

$ make test

跑覆盖率测试

$ make test-cov

贡献

有任何意见或建议都欢迎提 issue,或者直接提给 @alsotang

License

MIT

nodeclub's People

Contributors

aisk avatar alsotang avatar davidcai1111 avatar dead-horse avatar ericzhang-cn avatar fengmk2 avatar greenkeeperio-bot avatar huacnlee avatar hylin avatar jacksontian avatar jsonshen avatar jysperm avatar kennyz avatar lanceli avatar leizongmin avatar magicdawn avatar matrixbirds avatar muyuan avatar nosqldb avatar ravenwang avatar ricardo-li avatar snyk-bot avatar strwind avatar takwolf avatar tiye avatar vfasky avatar vuekit avatar xgheaven avatar yorkie avatar young40 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nodeclub's Issues

访问http://cnodejs.org/出错了

Error: failed to connect to [127.0.0.1:20088]
at [object Object]. (/home/admin/cnae/git/cnode-app-engine/apps_online/club/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:230:100)
at [object Object].emit (events.js:70:17)
at [object Object]. (/home/admin/cnae/git/cnode-app-engine/apps_online/club/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:104:14)
at [object Object].emit (events.js:70:17)
at Socket. (/home/admin/cnae/git/cnode-app-engine/apps_online/club/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:338:10)
at Socket.emit (events.js:67:17)
at Array. (net.js:301:14)
at EventEmitter._tickCallback (node.js:190:38)

正确地RESTful化

目前前端的调用估计不是正确的RESTful方式的,我看只有get/post两种。

关注人的时候发送的提醒有问题

微博上@HelloWhat_ 提交个bug:关注其他用户时消息发送错误。 用户A关注用户B时,系统给A发站内信“A关注了你”。

消息发送不对。

通知功能用着太辛苦了

正常逻辑是点过哪条通知, 哪条就直接从列表里消失的.
现在 CNode 上必须手动清除通知, 太繁琐了

自动登录和验证码

  • 完善登录机制。提供类似“两星期保持登录状态”这样的自动登录。
  • 登录时需要验证码,提高安全性。

cnodejs 第一贴 无法访问 ?

地址 : http://cnodejs.org/topic/4efc372a6d88ae8a6f000019
打开后看到如下信息

TypeError: /home/admin/cnae/git/cnode-app-engine/online/club/views/topic/index.html:107
    105|       <span class='col_fade'><%= topic.replies.length %> 回复</span>
    106|     </div>
 >> 107|     <%- partial('reply/reply', topic.replies) %>
    108|   </div>
    109|   <% } %>
    110|   <% if (locals.current_user && locals.topic) { %>

/home/admin/cnae/git/cnode-app-engine/online/club/views/reply/reply.html:3
    1| <div class='cell reply_area reply_item' id="reply<%= indexInCollection+1 %>" reply_id="<%= reply._id %>">
    2|  <div class='user_avatar'>
 >> 3|      <a href="/user/<%= reply.author.name %>"><img src="<%= reply.author.avatar_url %>" title="<%= reply.author.name %>" /></a>
    4|  </div>
    5|  <span class='col_fade fr'>#<%= indexInCollection + 1 %></span>
    6|  

Cannot read property 'name' of null
    at Object.<anonymous> (eval at <anonymous> (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/ejs/lib/ejs.js:238:3))
    at Object.<anonymous> (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/ejs/lib/ejs.js:239:15)
    at ServerResponse._render (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/express/lib/view.js:422:21)
    at ServerResponse.render (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/express/lib/view.js:315:17)
    at render (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/express/lib/view.js:184:16)
    at renderPartial (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/express/lib/view.js:204:16)
    at Object.partial (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/express/lib/view.js:409:12)
    at Object.<anonymous> (eval at <anonymous> (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/ejs/lib/ejs.js:238:3))
    at Object.<anonymous> (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/ejs/lib/ejs.js:239:15)
    at ServerResponse._render (/home/admin/cnae/git/cnode-app-engine/online/club/node_modules/express/lib/view.js:422:21)


这不是故意的吧 ?

中文标题无法显示

如何重现:

  1. 在主页(http://www.cnodejs.org/) 随便找一个标题是中英文混合的帖子
  2. 点击进入详细
  3. 在页面上部显示标题的地方,可以看到标题中的中文无法显示,只显示了英文。

自适应宽度

目前左右留空太多了,主流显示器都1024+了,固定宽度需要改进为自适应了。

  1. 首页 (done)
  2. topic页面
  3. 用户页面

其实防XSS攻击很简单, 我已经测试成功!

其实防XSS攻击很简单, 我已经测试成功! 以显示 topic为例:

//line 81 @ /controllers/topic.js::exports.index
if (!topic.content_is_html) { 
        // trans Markdown to HTML
        topic.content = Showdown.parse(topic.content);//这里不再需要Util.escape()了

      }
        topic.content = sanitize(topic.content).xss(); //不管内容是不是html格式,都给它xss()掉, 不留后患...

windows 安装的时候显示Cannot find module formidable

node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'express/node_modules/connect/node_modules/formidable'

怀疑是express 的问题,换了其他版本的express 也没有解决。
windows 7

有沒有考量作i18n?

我開了一個branch,把nodeclub簡體中文譯成繁體中文,希望有更多朋友能關注、參與nodeclub。

因此在想,nodeclub有沒有考慮作i18n,讓不同的語言、語系都可以更方便呈現。

ssURIError没有捕获到

详细错误日志如下:

exit
ssURIError: URI malformed
at /home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/middleware/static.js:119:14
at Object.static as handle
at next (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Object.handle (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/middleware/csrf.js:80:37)
at next (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Object.handle (/home/zero7u/nodeclub/controllers/sign.js:284:22)
at next (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Object.session as handle
at next (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Object.cookieParser as handle
URIError: URI malformed
at /home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/middleware/static.js:119:14
at Object.static as handle
at next (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Object.handle (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/middleware/csrf.js:80:37)
at next (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Object.handle (/home/zero7u/nodeclub/controllers/sign.js:284:22)
at next (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Object.session as handle
at next (/home/zero7u/nodeclub/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Object.cookieParser as handle

关于编辑器添加链接时 部分链接引用错误

按编辑器提供的功能 , 是可以这么加链接的:

链接

但是上面链接换成 ,比如 google code里面的链接 ,如: https://code.google.com/hosting/search?q=ruijie&projectsearch=Search+projects , 但是实际的链接会变成 : http://cnodejs.orghttps//code.google.com/hosting/search?q=ruijie&projectsearch=Search%20projects ,也就是多了http://cnodejs.org ,当然目前我遇到的是来自google code的链接

如果换种方式放链接,比如下面这种风格的,又是可以的

链接

这下子又不会出错了 .难道又是showdown.js 出错了?

Cannot GET /tag/

您好,我在部署nodeclub时新建了一个tag , 名为读书/音乐/电影,结果就出现 Cannot GET /tag/%E8%AF%BB%E4%B9%A6/%E9%9F%B3%E4%B9%90/%E7%94%B5%E5%BD%B1 的错误. 请问是否因为tag里面包括了特殊字符导致创建数据时出错?

登录后跳转的位置不对

controller 代码不会 >_<
从主页点击"登录", 然后登录进去了, 但是页面没有跳转回主页,
从帖子里点击登录是跳转正确的..

Embedded video failed ?

今天尝试了一下nodeclub的markdown编辑器是否支持嵌入视频 ,发现在预览有效果,还可以观看,但是一提交后,那些代码就失效了,跟普通文本无差异, 请问这是bug吗?还是一个未完成的feature ?

搭配 nginx 时, 从`设置`页面`退出`和发贴过程重定向出错

我用 nginx 处理了去掉端口号传到论坛
发现从个人设置页面点击退出的时候重定向还是有错, 跳转到 "127.0.0.1:#{port}" .

前几天的版本(没记录..)登录/退出被重定向到了 "127.0.0.1:#{port}" 这样出错
今天凌晨(Mar 6)重新 clone 一次, 登录退出问题消失, 猜测之前的 commit ..
所以猜测是类似的问题.. 现在只是设置页的退出有问题了

更新
发贴点击发布的时候也遇到了.. 这个位置有些致命

更新
我用了移动的校园无线, 发现 signout 过程的 req.headers.refererhttp://my_club.my_domain.in 时,
直接会被重定向到移动的 139site 之类的导航,

结果
配置出错, nginx 没有检出..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.