Nodejs轻博客应用
Nodejs轻博客应用
之前有TX说node.js异步回调嵌套太麻烦,我最近写了一个小应用,个人轻博客,感觉只要分层弄好其实嵌套也就那回事。
wujb.net轻博客是基于node.js开发框架rrestjs开发的,数据库采用mongodb,主要功能有发布文章,图片,视频等。(坑爹的是我忘记把编辑器功能加上去了,55555)
项目地址:http://www.wujb.net (之前被阿里云档了,现在把域名指向国外服务器跳转了,解决了,HOHO~) nae地址:http://wujb.cnodejs.net/ 项目源码:GITHUB源码 rrestjs框架:www.rrestjs.com
主要功能有: 1、无需注册即可使用,甚至于无需输入密码,全站邮箱都经过加密处理,无需担心被盗号。 2、可以根据喜好发布图片、文字、视频的简短轻博客 3、可以修改站点的登陆封面(由于NAE平台无法安装图片处理软件,故此功能被砍掉了) 4、可以对某一篇文章进行喜欢,可以对某一位博友加好友 5、可以对博文进行评论 6、可以和博友进行私信聊天 7、等等其他
部署在NAE上,可能抽风下线,我会及时跟踪上线 各位大大轻拍啊~
简单的分层图:
项目截图:
Nodejs轻博客应用
之前有TX提到Node.js的异步回调嵌套问题,我最近写了一个小应用——一个个人轻博客,感觉只要分层设计得当,其实嵌套回调也不是那么麻烦。
wujb.net 轻博客
wujb.net 是基于node.js开发框架 rrestjs 开发的,数据库采用mongodb。主要功能包括发布文章、图片、视频等。不过,遗憾的是我忘记把编辑器功能加上去了,55555。
项目地址
- 网站:http://www.wujb.net
- NAE地址:http://wujb.cnodejs.net/
- 项目源码:GitHub源码
- rrestjs框架:http://www.rrestjs.com
主要功能
- 无需注册:用户无需注册即可使用,甚至不需要输入密码。所有邮箱都经过加密处理,不用担心被盗号。
- 发布内容:用户可以根据喜好发布图片、文字、视频的简短轻博客。
- 自定义封面:可以修改站点的登录封面(但由于NAE平台无法安装图片处理软件,该功能暂时被砍掉)。
- 互动功能:用户可以对某篇文章进行点赞,可以给某位博主加好友。
- 评论功能:用户可以对博文进行评论。
- 私信功能:用户之间可以进行私信聊天。
- 更多功能:包括但不限于搜索、分类浏览等。
部署情况
部署在NAE上,可能会偶尔出现抽风下线的情况,我会及时跟进并确保服务稳定运行。
简单分层图
项目截图
示例代码
以下是一个简单的示例代码片段,展示如何在Node.js中使用rrestjs框架创建一个简单的路由:
// 引入必要的模块
const rrest = require('rrest');
const express = require('express');
const app = express();
// 定义一个简单的路由
app.get('/post', (req, res) => {
// 获取请求参数
const { title, content } = req.query;
// 处理逻辑
// 这里假设我们有一个简单的存储机制
const post = { title, content };
// 返回响应
res.json(post);
});
// 启动服务器
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
通过这样的分层设计,我们可以有效地管理异步回调,使得代码更加清晰和易于维护。希望这个轻博客应用能为你的Node.js学习之路提供一些帮助!
怎么我一访问http://www.wujb.net就跳转到nodejs论坛了呢?
NAE域名绑定功能有点问题,可能是阿里云屏蔽了,你直接访问 http://wujb.cnodejs.net/
![enter image description here][1]
样式有问题,看了下css都下载下来了,页面还是乱 [1]: /upload/4f19624f817ae4105c019116/1342688086754_test.jpg
用nae访问吧,域名绑定有问题啊
不错!
很漂亮哦~ 郑重声明:本站不支持IE6! 这个很威武,让IE6见鬼去吧~
为什么和网易的lofter差不多。
还真是诶~不过轻博客好像都长这样~网易,新浪,点点、、、、、
支持一个 snoopy
要是源码都像 config.js 那么多注释就爽了 : D
很不错,网易Lofter的风格吧,美工细节还有待改善,不过基本的Tiny Twitter的东西都有啦,赞一个~
必须的啊,我觉得应该直接让IE6打不开这个页面~
感谢捧场啊~
代码不复杂,很简单的一个网络应用
嗯,参考的就是lofter风格,美术细节确实有待加强
赞一个。
非常赞!
谢谢啊~
感谢发烧友的捧场
楼主你好,我也是nodejs新手一个。最近在学习的时候遇到了一个问题。我在学习国外的一个用nodejs和mongodb做的博客,他的博客代码也和您一样全部开源。他的博客链接如下http://justjs.com/ 由于我是初次接触nodejs和mongodb,所以对里面的东西都还不是很了解。想请教一个很简单的问题。就是关于nodejs的路径问题。比如说我现在建立了一个名为blog的文件夹,然后里面包括了server.js app.js等文件,在运行时是不是一定要把node.exe文件放在相同目录才能运行?盼复!
不需要的,node.exe是windows下的吧,node.exe随便放在哪里,启动的时候跟上参数就可以了
很厉害!支持~
楼主,请问在window上写的怎么打包发布应用呢?
noderce也不错
很不错 支持下
支持下,正准备搞个博客~
木有头像功能哇…gravatar出于半墙状态,木有头像功能比较不爽
我都是在linux下搞的,windows不清楚呀
还可以哇,我没有被墙到,gravatar简单啊,节约服务器资源,而且nae有个要命的设定,发布会覆盖的,文件上传会悲剧
您好,请问下,您这个应用的路由分发是不是在controller/app.js 里的这一句require(’./’+req.path[0])[req.path[1]](req, res); 实现的呢????对路由分发这一块有点朦
就是这部分实现的路由,这也是rrestjs框架区别于expressjs的最大不同
大哥!这样式是全部自己写的么?
大哥做的相当不错, 鼓励持续开发
在github打mark了,callback确实让我很头痛,主要是不习惯逻辑,今天好了一点,希望习惯就好
不错,俺也在筹划中…
无需注册是不是在登录里要检测一下账号,没有就顺手注册一个?
###遗憾啊,刚看到你这篇博客,貌似已经挂掉了吧###
根据你的描述,“Nodejs轻博客应用”的实现涉及多个组件和功能。下面提供一个简单的示例,展示如何构建一个轻博客应用的基础部分,例如发布文章和查看文章列表。
示例代码:基础的博客文章管理
首先,我们需要安装必要的依赖包:
npm install express mongoose body-parser
1. 创建 Express 应用和 MongoDB 模型
创建 app.js
文件,并定义基本的Express应用结构:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
// 连接到MongoDB
mongoose.connect('mongodb://localhost:27017/blog', { useNewUrlParser: true, useUnifiedTopology: true });
// 定义文章模型
const ArticleSchema = new mongoose.Schema({
title: String,
content: String,
createdAt: { type: Date, default: Date.now }
});
const Article = mongoose.model('Article', ArticleSchema);
// 获取所有文章
app.get('/api/articles', async (req, res) => {
const articles = await Article.find().sort({ createdAt: -1 });
res.json(articles);
});
// 发布新文章
app.post('/api/articles', async (req, res) => {
const article = new Article(req.body);
await article.save();
res.status(201).json(article);
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
2. 实现功能说明
- 获取所有文章:通过
/api/articles
路由可以获取所有的文章列表。 - 发布文章:通过向
/api/articles
发送 POST 请求,可以发布一篇新的文章。
分层设计
为了更好地组织代码,你可以将不同的功能模块化:
- Models:存放数据模型(如上面的
Article
模型)。 - Controllers:存放业务逻辑(如获取文章和保存文章的逻辑)。
- Routes:定义路由和处理函数。
部署与维护
确保你的应用在生产环境中正确配置了环境变量,例如数据库连接字符串。同时,建议使用进程管理工具如 PM2 来保证服务稳定运行。
以上就是构建一个简单的 Node.js 轻博客应用的基本步骤。具体的功能扩展可以根据需求逐步添加,比如用户系统、评论系统等。