用meteor.js结合Nodejs开发了一个网络应用“一起倒计时”

用meteor.js结合Nodejs开发了一个网络应用“一起倒计时”

一起倒计时 | www.17djs.com

meteor.js开发

不断更新中

网友注册可以发布倒计时主题,网友可以围绕该主题展开讨论等,可以关注(开发中)某些自己喜欢的主题,按照分类搜索等,如果有兴趣的朋友可以加入到我这里一起开发那最好了。

6 回复

用Meteor.js结合Node.js开发了一个网络应用“一起倒计时”

项目介绍

“一起倒计时”是一个基于Meteor.js构建的网络应用,用户可以在上面创建倒计时活动,并围绕这些活动进行讨论。目前,该应用支持用户注册、发布倒计时主题以及基本的搜索功能。未来版本中还将增加关注特定主题的功能。

技术栈

  • 前端: Meteor.js, React
  • 后端: Node.js, MongoDB (作为数据库)

主要功能

用户注册与登录
// 客户端代码:accounts-ui包提供了基本的用户注册和登录界面
import { Meteor } from 'meteor/meteor';

// 服务端代码:确保用户数据的安全存储
Meteor.startup(() => {
    if (!Meteor.users.find().count()) {
        // 初始化管理员账户
        Accounts.createUser({
            username: 'admin',
            email: 'admin@example.com',
            password: 'adminpassword'
        });
    }
});
发布倒计时主题
// 客户端代码:创建一个新的倒计时主题
Template.createCountdown.events({
    'submit form': function(event) {
        event.preventDefault();
        const title = event.target.title.value;
        const date = event.target.date.value;

        Meteor.call('createCountdown', title, new Date(date), function(error, result) {
            if (error) {
                alert(error.reason);
            } else {
                alert('倒计时已成功创建!');
            }
        });
    }
});

// 服务端代码:处理倒计时主题的创建
Meteor.methods({
    createCountdown: function(title, date) {
        return Countdowns.insert({ title, date });
    }
});
搜索功能
// 客户端代码:根据关键词搜索倒计时主题
Template.search.events({
    'submit form': function(event) {
        event.preventDefault();
        const keyword = event.target.keyword.value;

        Meteor.call('searchCountdowns', keyword, function(error, results) {
            if (error) {
                alert(error.reason);
            } else {
                // 显示搜索结果
                Session.set('searchResults', results);
            }
        });
    }
});

// 服务端代码:执行搜索逻辑
Meteor.methods({
    searchCountdowns: function(keyword) {
        return Countdowns.find({ $text: { $search: keyword } }).fetch();
    }
});

未来计划

  • 增加关注特定倒计时主题的功能
  • 提升用户体验和性能
  • 添加更多互动功能,如评论系统

如果你对这个项目感兴趣,欢迎加入我们一起开发!


通过上述示例代码,你可以看到如何使用Meteor.js和Node.js来实现一个简单的倒计时应用。希望这能为你的开发提供一些启示!


有意思~

thx,每天有空都更新一点。

效果还不错, github是否公开源码?

好玩啊

一起倒计时 | www.17djs.com

使用Meteor.js结合Node.js开发的网络应用“一起倒计时”。

Meteor.js 是一个用于构建现代Web应用程序的全栈JavaScript平台。它允许你在客户端和服务器之间共享代码,并且可以轻松地处理实时数据同步。本项目旨在创建一个能够支持用户发布、关注和讨论倒计时事件的应用。

主要功能

  • 发布倒计时主题:用户可以创建新的倒计时事件,设置事件名称、日期和时间。
  • 讨论区:每个倒计时主题都有一个讨论区,用户可以在其中发表评论。
  • 关注机制:用户可以关注感兴趣的倒计时事件。
  • 分类搜索:用户可以根据类别查找相关的倒计时事件。

技术栈

  • 前端:React.js(通过Meteor集成)
  • 后端:Node.js + MongoDB(通过Meteor集成)
  • 部署:Meteor部署服务

示例代码

发布倒计时主题
// 在客户端
import { Meteor } from 'meteor/meteor';
import { FlowRouter } from 'meteor/kadira:flow-router';
import { BlazeLayout } from 'meteor/kadira:blaze-layout';

FlowRouter.route('/create', {
  name: 'create',
  action() {
    BlazeLayout.render('mainLayout', { main: 'createForm' });
  },
});

// 创建表单提交
Template.createForm.events({
  'submit form'(event) {
    event.preventDefault();
    const title = event.target.title.value;
    const date = event.target.date.value;

    Meteor.call('createCountdown', title, date, (error, result) => {
      if (!error) {
        FlowRouter.go('/countdowns');
      }
    });
  },
});
后端逻辑
// 在服务器
Meteor.methods({
  createCountdown(title, date) {
    Counts.insert({ title, date, createdAt: new Date() });
  },
});

// 在数据库模型
Counts = new Mongo.Collection('counts');
讨论区
// 客户端
Template.countdownDiscussion.events({
  'submit .comment-form'(event) {
    event.preventDefault();
    const commentText = event.target.commentText.value;
    const countdownId = FlowRouter.current().params._id;

    Meteor.call('addComment', countdownId, commentText, (error, result) => {
      if (!error) {
        // 更新UI显示新评论
      }
    });
  },
});

// 服务器
Meteor.methods({
  addComment(countdownId, text) {
    Comments.insert({ countdownId, text, createdAt: new Date() });
  },
});

// 数据库模型
Comments = new Mongo.Collection('comments');

开发进度

目前,项目还在不断完善中,欢迎有兴趣的朋友加入我们共同开发。

如果你有任何问题或建议,欢迎随时与我联系!

回到顶部