×

Meteor Mantra 介绍 (五)- 博客例子后端代码解读

96
荆雷
2016.08.06 12:15* 字数 428

Meteor Mantra 系列文章:

Meteor Mantra 介绍(一)- 基本概念
Meteor Mantra 介绍(二)- 前端架构详解
Meteor Mantra 介绍(三)- 后端架构解释
Meteor Mantra 介绍(四)- 博客例子前端代码解读
Meteor Mantra 介绍(五)- 博客例子后端代码解读


前后端共用代码

例子有只有一个 lib 文件夹是前后端共用的。

lib

见 lib/collections.js,向前后端输出数据库的集合定义。

import {Mongo} from 'meteor/mongo';

export const Posts = new Mongo.Collection('posts');
export const Comments = new Mongo.Collection('comments');

这里一般还可以 share 一些通用的工具函数等等。

后端

Mantra 的后端代码都位于 server 文件夹。例子中后端代码主要是由以下三个文件夹和一个 JavaScript 文件组成

  • configs
  • methods
  • publications
  • main.js

main.js

后端的入口。在这里 import methods,publications 和 configuration 并且调用它们。可以看到这里调用激活了其他三个文件夹的代码。

import publications from './publications';
import methods from './methods';
import addInitialData from './configs/initial_adds.js';

publications();
methods();
addInitialData();

configs

和前端类似,也是设置配置。例子中是如果发现没有博客文章,那么自动生成 5 篇。

import {Posts} from '/lib/collections';

export default function () {
  if (!Posts.findOne()) {
    for (let lc = 1; lc <= 5; lc++) {
      const title = `This is the post title: ${lc}`;
      const content = `Post ${lc}'s content is great!`;
      Posts.insert({title, content});
    }
  }
}

methods

很明显这里就是 Meteor methods 方法。每个种类的方法汇聚在一个 js 文件。和前端一样,methods
文件夹里有一个 index.js 文件负责集中输出对象。而 posts.js 文件里的 methods 负责更新数据库。

publications

和前面的 methods 文件夹类似,只是把 methods 换成 publish,更新数据库变为了发布数据。

小结

这些就是例子中的后端代码。注意的是,博客例子里后端没有像前端那样有测试代码。关于测试代码结构,可以参看 Mantra 文档。

日记本
Web note ad 1