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上,可能抽风下线,我会及时跟踪上线 各位大大轻拍啊~

简单的分层图: enter image description here

项目截图: enter image description here

enter image description here


41 回复

Nodejs轻博客应用

之前有TX提到Node.js的异步回调嵌套问题,我最近写了一个小应用——一个个人轻博客,感觉只要分层设计得当,其实嵌套回调也不是那么麻烦。

wujb.net 轻博客

wujb.net 是基于node.js开发框架 rrestjs 开发的,数据库采用mongodb。主要功能包括发布文章、图片、视频等。不过,遗憾的是我忘记把编辑器功能加上去了,55555。

项目地址

主要功能

  1. 无需注册:用户无需注册即可使用,甚至不需要输入密码。所有邮箱都经过加密处理,不用担心被盗号。
  2. 发布内容:用户可以根据喜好发布图片、文字、视频的简短轻博客。
  3. 自定义封面:可以修改站点的登录封面(但由于NAE平台无法安装图片处理软件,该功能暂时被砍掉)。
  4. 互动功能:用户可以对某篇文章进行点赞,可以给某位博主加好友。
  5. 评论功能:用户可以对博文进行评论。
  6. 私信功能:用户之间可以进行私信聊天。
  7. 更多功能:包括但不限于搜索、分类浏览等。

部署情况

部署在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新手一个。最近在学习的时候遇到了一个问题。我在学习国外的一个用nodejsmongodb做的博客,他的博客代码也和您一样全部开源。他的博客链接如下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 轻博客应用的基本步骤。具体的功能扩展可以根据需求逐步添加,比如用户系统、评论系统等。

回到顶部