使用Meteor.js开发简易待办事项应用
Meteor.js框架简介
Meteor.js 是一个全栈 JavaScript 开发框架,允许开发者使用一种语言(JavaScript)开发整个 Web 应用,包括客户端、服务器端及数据库交互。它以实时性、高性能和简洁的 API 而受欢迎,核心理念是“写一次,到处运行”,通过 DDP(Distributed Data Protocol)协议实现客户端和服务器之间的实时双向数据同步。
创建简单 Todo 应用
要在 Meteor.js 中创建一个简单的 Todo 应用,首先需要安装 Meteor 工具。可通过官方网站或 npm 安装 Meteor CLI。安装完成后,创建一个新项目,命令行输入:
meteor create simple-todo
这将在当前目录下生成一个名为 simple-todo
的新项目。
文件结构分析
在 simple-todo-master
文件夹中,典型的 Meteor 项目结构包括:
-
client
:存放客户端代码,如 HTML、CSS 和 JavaScript,运行于用户浏览器中。 -
server
:存放服务器端代码,仅在服务器上运行,处理数据库操作和敏感任务。 -
imports
:用于模块化导入代码,提升代码组织性。 -
public
:存放静态资源,如图片、字体。 -
lib
:共享库文件,客户端和服务器均可访问。 -
private
:存放非公开文件,如配置文件。 -
.meteor
:包含项目元数据和配置信息。 -
package.json
:定义依赖和配置。 -
README.md
:项目介绍与说明。 -
.gitignore
:指定 Git 忽略的文件。
数据模型与 MongoDB
Meteor.js 通常使用内置的 MongoDB 数据库存储应用数据。在 server
文件夹下创建 collections.js
文件,定义 Todo 数据模型:
Todos = new Mongo.Collection('todos');
这将创建一个名为 todos
的集合,客户端和服务器均可访问。
用户界面与模板
在 client
文件夹下的 main.html
中,使用 HTML 和 Blaze(Meteor 的模板引擎)创建用户界面:
<template name='\"App_body\"'>
<div class='\"container\"'>
<header>
<h2>Todo Listh1>
header>
<ul>
{{#each todos}}
{{> todo}}
{{/each}}
ul>
<form>
<input id='\"new-todo\"' new="" placeholder='\"Add' todo\"="" type='\"text\"'/>
<button type='\"submit\"'>Addbutton>
form>
div>
template>
<template name='\"todo\"'>
<li>{{text}} <button class='\"delete\"'>Deletebutton>li>
template>
在 main.js
中导入数据模型并添加事件监听器:
import { Todos } from '../imports/collections.js';
Template.App_body.onCreated(function () {
this.autorun(() => {
this.subscribe('todos');
});
Template.todo.events({
'click .delete': function (event) {
Todos.remove(this._id);
}
});
发布与订阅
在 server.js
文件中定义数据的发布和订阅:
Meteor.publish('todos', function () {
return Todos.find();
});
客户端自动订阅 todos
,实现数据实时同步。
运行与部署
启动项目,命令行输入:
cd simple-todo
meteor
访问 http://localhost:3000
查看和使用应用。开发完成后,可以通过 Meteor 的部署工具将应用发布到支持的平台,例如 Galaxy、Heroku 或 AWS。