基于Nodejs开发的社区系统-sumorio
基于Nodejs开发的社区系统-sumorio
- 为何有sumorio
-
写了这个题目,忽然觉得有点标题党的嫌疑,这个所谓的社区系统目前还没有开发完成,只是把第一部分功能放出来。
-
从1月份开始接触到nodejs(好吧,苦逼的不懂js不懂css的伤不起)就产生了很浓厚的兴趣。
-
nodeclub开源后尝试着在上面写一些觉得应该有的功能,后来因为实在对mongodb以及orm思想 的不感冒以及对mysql的熟悉,索性换了底层重新写。目前的第一阶段的成果就是sumorio,废话少说,介入正题。
- sumorio简介
-
nodeclub目前是不提供个人文章分类和管理功能的,所以我从这部分开始做,放几张图吧。
-
下面这个图是否似曾相识?是的,样式直接从nodeclub身上扒下来的,小剽窃,因为不懂css,咳咳。。。
-
分类下的文章
-
具体的文章
- 后续
- 赶紧的,谁来帮我整整css和js吧,hold不住了,怎能让一个做后端的天天折腾css和html。
- 真正动手用nodejs写一个东西出来才发现这玩意儿太好用了,一边熟悉它的特性一边动手练习,对初学者来说,sumorio还是可以看下的。
- 通过nodejs去学以前非常讨厌的js,发现js这门语言还是挺神奇的,你可以随便摆弄她,尝试让她很方便地做各种事情,以前还真是错怪她了。。。
- sumorio还会继续开发下去,把现在没完善的社区功能补上。
- 开始用nodejs开发其他应用。
基于Nodejs开发的社区系统-sumorio
1. 为何有sumorio
写这个题目时,我忽然觉得有些标题党的嫌疑,因为这个所谓的社区系统目前还没有完全开发完成,只是把第一部分功能放出来了。从今年1月份开始接触Node.js(好吧,苦逼的我不懂JS,不懂CSS,真是伤不起),我就产生了浓厚的兴趣。Node.club开源后,我尝试着在上面添加一些我觉得应该有的功能,但由于我对MongoDB以及ORM思想不感冒,再加上我对MySQL的熟悉,索性换了个底层重新写。目前第一阶段的成果就是Sumorio。废话少说,让我们切入正题。
2. Sumorio简介
Sumorio的主要目的是为了弥补Node.club在个人文章分类和管理方面的不足。以下是一些截图:
-
首页分类:
// 示例代码:获取分类列表 const Category = require('../models/Category'); app.get('/categories', async (req, res) => { try { const categories = await Category.find(); res.render('categories', { categories }); } catch (error) { console.error(error); res.status(500).send('Internal Server Error'); } });
-
分类下的文章:
// 示例代码:获取某个分类下的文章列表 const Article = require('../models/Article'); app.get('/category/:id', async (req, res) => { try { const articles = await Article.find({ categoryId: req.params.id }); res.render('articles', { articles }); } catch (error) { console.error(error); res.status(500).send('Internal Server Error'); } });
-
具体的文章页面:
// 示例代码:获取具体的文章详情 app.get('/article/:id', async (req, res) => { try { const article = await Article.findById(req.params.id); res.render('article', { article }); } catch (error) { console.error(error); res.status(500).send('Internal Server Error'); } });
3. 后续
赶紧的,谁来帮我整整CSS和JS吧,我真的是hold不住了。作为一个后端开发者,天天折腾CSS和HTML确实不是我的强项。真正动手用Node.js写一个东西出来,才发现这玩意儿太好用了。一边熟悉它的特性一边动手练习,对于初学者来说,Sumorio还是可以看看的。
通过Node.js去学以前非常讨厌的JavaScript,我发现这门语言还是挺神奇的。你可以随便摆弄它,尝试让它方便地做各种事情,以前还真是错怪她了。Sumorio还会继续开发下去,把现在未完善的社区功能补上。开始用Node.js开发其他应用。
希望这个简单的介绍对你有所帮助!
wow,八错不错,不留个地址给参观参观
附上github地址:sumorio
多提意见啊,社区性的功能怎么做我还在考虑中。现在正在做全站的topic功能,下个版本放出的时候功能就会完善点了。
我之前大部分时间是花在对样式风格的调整上了。做后端写前端各种不适应。。还是得学习才行。 推荐一个我个人认为蛮不错的node网站。www.csser.com。整站基于nodejs,跟nodeclub走的路线图是不一样的风格。
问答。。。
有没有演示啊?
呃,没地方放演示
在学前端,然后现在在接触js,近一个月都会自己学习,网上的恩师和我说过node.js,听说很神奇,所以来学习,如果有可以帮忙的可以说,尽量,基本前端页面还是可以做得来的!
csser.com 这个代码有没有开源的?
css的, 看下twitter.github.com/bootstrap/
I met the same issue with you today, I found one solution at last, copy the connect directory to express recursively.Good luck!
为什么会出现
node.js:201 throw e; // process.nextTick error, or ‘error’ event on first tick ^ TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'register’ at Function.<anonymous> (/Applications/XAMPP/xamppfiles/htdocs/xampp/public/github/sumorio/app.js:13:9) at Function.configure (/Applications/XAMPP/xamppfiles/htdocs/xampp/node_modules/express/lib/application.js:418:61) at Object.<anonymous> (/Applications/XAMPP/xamppfiles/htdocs/xampp/public/github/sumorio/app.js:10:5) at Module._compile (module.js:444:26) at Object…js (module.js:462:10) at Module.load (module.js:351:31) at Function._load (module.js:310:12) at Array.0 (module.js:482:10) at EventEmitter._tickCallback (node.js:192:40)
检查下是不是所有的模块都安装了
- 去查看你的express/nodemodules/connect/nodemodules/formidable目录有没有这个模块
- 然后要根据nodeclub的设置配置express/node_modules/connect/lib/middleware/csrf.js
nodemodules should be node_modules
– Table structure for user
DROP TABLE IF EXISTS user
;
CREATE TABLE user
(
id
int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
loginname
varchar(30) DEFAULT ‘’ COMMENT ‘用户名’,
pwd
varchar(100) DEFAULT ‘’,
email
varchar(100) DEFAULT ‘’ COMMENT ‘邮箱’,
create_at
datetime DEFAULT ‘1970-01-01 00:00:00’,
avatar
varchar(255) DEFAULT ‘/img/avatar.png’,
PRIMARY KEY (id
),
KEY index_user_id
(id
)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
sumory前辈,黑色加粗的那段sql语句是做什么用的呢?查了手册好像木有这个用法呐
是在id上建索引啊
弄了一下 你的源码,恩,跑起来了。, 但是好像没有发布文章 是不是? 发布文章的 链接是什么啊?, 有没有一起开发这个的 QQ 群啊? 一起交流方便呢
你看看这个介绍 http://cnodejs.org/topic/4fab80a16715c7700e083e83 有发布文章啊,这是基本的。
楼主的qq多少啊
基于Nodejs开发的社区系统-sumorio
1. 为何有sumorio
这个题目确实有点标题党的嫌疑,因为sumorio目前还没有开发完成,只是把第一部分功能放出来了。不过,从1月份开始接触Node.js(好吧,苦逼的不懂JS不懂CSS的伤不起),我就产生了很浓厚的兴趣。NodeClub开源后,我尝试着在上面写一些我觉得应该有的功能。但由于我对MongoDB和ORM思想不感冒,以及对MySQL的熟悉,最终决定换一个底层重新写。目前第一阶段的成果就是sumorio。
2. sumorio简介
NodeClub目前没有提供个人文章分类和管理的功能,所以我从这部分开始做起。以下是几个功能展示:
-
个人文章分类
这个界面与NodeClub非常相似,主要是为了快速实现功能,所以直接使用了NodeClub的样式。
<!-- 示例HTML代码 --> <div class="article-category"> <h2>我的文章分类</h2> <ul> <li><a href="/category/technology">技术分享</a></li> <li><a href="/category/life">生活感悟</a></li> </ul> </div>
-
分类下的文章
这个页面展示了分类下的所有文章列表。
<!-- 示例HTML代码 --> <div class="article-list"> <h2>技术分享</h2> <ul> <li><a href="/post/1">如何高效学习JavaScript</a></li> <li><a href="/post/2">Node.js入门指南</a></li> </ul> </div>
-
具体的文章
这个页面展示了具体文章的详细内容。
<!-- 示例HTML代码 --> <div class="article-detail"> <h1>如何高效学习JavaScript</h1> <p>学习JavaScript是一条漫长的道路,但掌握正确的学习方法可以使这个过程更加高效...</p> </div>
3. 后续
希望有人能帮忙整理一下CSS和JS,因为作为一个后端开发者,我实在是Hold不住这些前端的东西。不过,用Node.js开发一个实际的应用让我发现这门技术真是太好了,通过动手实践和熟悉其特性,即使是初学者也能从中受益。Node.js让我对JavaScript有了全新的认识,发现这门语言非常灵活,可以用来完成很多有趣的事情。未来,我会继续完善sumorio,添加更多的社区功能,并开始用Node.js开发其他应用。