Nodejs的日记网站,昨天刚发新版~

Nodejs的日记网站,昨天刚发新版~

tuer.me

把之前版本的routes全部重写,增加了wap版,修改了bootstrap,优化了许多交互细节,增加了日记本功能,丰富了个人设置等功能。

有想交流经验的,找bug的。。。开喷…。

前端用nginx判断的ua,分流到不同的版本,额,ie只支持到wap版~

首页:首页截图 个人页:个人页截图


14 回复

Node.js 的日记网站,昨天刚发新版~

大家好!今天我非常高兴地向大家介绍我们最新的 Node.js 日记网站。经过一段时间的努力,我们在原有基础上做了大量的改进和优化,发布了全新的版本。

新版特性

  1. 重写了所有路由:我们将之前的 routes 文件全部重写,以提高性能和可维护性。

    // 示例代码:重写后的路由文件
    const express = require('express');
    const router = express.Router();
    
    // 首页路由
    router.get('/', (req, res) => {
        res.render('index', { title: '首页' });
    });
    
    // 个人页面路由
    router.get('/profile', (req, res) => {
        res.render('profile', { title: '个人页' });
    });
    
    module.exports = router;
    
  2. 增加了 WAP 版本:为了更好地适应移动设备,我们新增了 WAP 版本,使得移动用户可以更方便地访问。

    // 示例代码:WAP 版本路由
    router.get('/wap', (req, res) => {
        res.render('wap/index', { title: 'WAP 首页' });
    });
    
  3. 修改了 Bootstrap 框架:我们更新了使用的 Bootstrap 版本,并对样式进行了调整,以提升用户体验。

    <!-- 示例代码:更新后的 Bootstrap 样式 -->
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
    
  4. 优化了许多交互细节:我们对一些交互细节进行了优化,例如表单提交、按钮点击等,使得用户操作更加流畅。

    // 示例代码:优化表单提交
    app.post('/submit', (req, res) => {
        const data = req.body;
        // 处理表单数据...
        res.redirect('/success');
    });
    
  5. 增加了日记本功能:现在用户可以创建和管理自己的日记本,记录生活点滴。

    // 示例代码:日记本功能
    router.post('/diary/new', (req, res) => {
        const newDiary = req.body;
        // 将新日记保存到数据库...
        res.redirect('/diary');
    });
    
  6. 丰富了个人设置功能:用户现在可以自定义个人资料,如头像、昵称等信息。

    // 示例代码:个人设置功能
    router.post('/settings', (req, res) => {
        const settings = req.body;
        // 更新用户设置...
        res.redirect('/profile');
    });
    

技术实现

  • 前端使用 Nginx 进行 UA 判断:我们使用 Nginx 来判断用户的 UA(User-Agent),并根据结果将请求分流到不同的版本。

    # 示例代码:Nginx 配置
    if ($http_user_agent ~* "Mobile") {
        return 301 http://wap.example.com;
    }
    
  • IE 只支持 WAP 版本:考虑到 IE 浏览器的局限性,我们决定仅为其提供 WAP 版本的支持。

用户体验

我们希望这些改进能够提升您的使用体验。如果您有任何问题、建议或发现任何 bug,请随时与我们联系。我们非常乐意听取您的反馈!

  • 首页截图首页截图

  • 个人页截图个人页截图

感谢大家的支持!


好像快了很多啊

能不能自定义模板啊?

enter image description here

很慢啊,都Time-out了

哎呀,我一直以为这两只兔子是一个人

哈哈 和我的差不多啊 nodejs学习笔记 http://bbs.w3hacker.com/forum-57-1.html

打算加这个功能呢。

我开始也有这个错觉。。

你这个是教程把。。

204个注册用户咯!

在yahoo.cn邮箱点击活邮件时出现以下错误:

Express 500 ReferenceError: /home/tuer2.0/views/wap/common/header.jade:4 2| title 兔耳日记 | #{title} 3| link(rel=“stylesheet”,href=“http://#{config.csshost}/style/css/m.css”,type=“text/css”,media=“screen”,charset=“utf-8”) > 4| config is not defined 2| title 兔耳日记 | #{title} 3| link(rel=“stylesheet”,href=“http://#{config.csshost}/style/css/m.css”,type=“text/css”,media=“screen”,charset=“utf-8”)

4|

config is not defined at eval (eval at (/home/tuer2.0/node_modules/jade/lib/jade.js:176:8)) at Object.exports.compile (/home/tuer2.0/node_modules/jade/lib/jade.js:181:12) at ServerResponse.res._render (/home/tuer2.0/node_modules/express/lib/view.js:425:21) at ServerResponse.res.render (/home/tuer2.0/node_modules/express/lib/view.js:318:17) at exports.active.render (/home/tuer2.0/routes/wap/register.js:89:8) at EventProxy.trigger (/home/tuer2.0/node_modules/eventproxy/eventproxy.js:112:34) at EventProxy.immediate (/home/tuer2.0/node_modules/eventproxy/eventproxy.js:145:14) at exports.active (/home/tuer2.0/routes/wap/register.js:108:28) at tuerBase.findOne (/home/tuer2.0/model/base.js:235:10) at Collection.findOne (/home/tuer2.0/node_modules/mongodb/lib/mongodb/collection.js:952:34)

我看看代码。

已经解决了,走到这一步账号已经激活了,应该邮件也给你发了。

wap版本激活那里少传了个参数,感谢反馈。已经修复。

Nodejs的日记网站,昨天刚发新版~

介绍

我们最近发布了一个新版的日记网站,网址是:tuer.me。这次更新包含了许多改进和新功能。

更新内容

  • 重写所有路由:之前的路由逻辑被完全重写,以提高性能和可维护性。
  • 增加WAP版:现在支持移动设备访问,用户体验得到提升。
  • 修改Bootstrap样式:界面更加现代化,视觉效果更佳。
  • 优化交互细节:改进了一些关键操作的体验,如创建、编辑和删除日记条目。
  • 增加日记本功能:用户可以创建多个日记本,更好地组织他们的内容。
  • 增加个人设置:提供了更多的个性化选项,如头像上传、背景自定义等。

技术栈

  • 后端: Node.js + Express
  • 前端: HTML, CSS, JavaScript (使用Bootstrap)
  • 移动版: 使用Nginx根据User-Agent进行分流

Nginx配置示例

为了区分PC和移动用户,我们在Nginx中做了以下配置:

server {
    listen 80;
    server_name tuer.me;

    if ($http_user_agent ~* "Mobile") {
        return 301 http://m.tuer.me$request_uri;
    }

    location / {
        proxy_pass http://your_backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

server {
    listen 80;
    server_name m.tuer.me;

    location / {
        proxy_pass http://your_mobile_backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

示例代码:日记本功能

这里是一个简单的日记本创建功能示例:

const express = require('express');
const router = express.Router();
const DiaryBook = require('../models/DiaryBook'); // 假设你有一个DiaryBook模型

// 创建日记本
router.post('/create-diary-book', async (req, res) => {
    const { title } = req.body;

    try {
        const diaryBook = new DiaryBook({ title });
        await diaryBook.save();
        res.status(201).json(diaryBook);
    } catch (error) {
        res.status(500).json({ message: error.message });
    }
});

module.exports = router;

总结

感谢大家的支持!如果你有任何建议或发现了任何问题,请随时联系我。期待你的反馈!


希望这些信息对你有所帮助!

回到顶部