Board logo

标题: 使用 Meteor 构建一个响应式的销售图应用程序 [打印本页]

作者: look_w    时间: 2018-1-20 21:02     标题: 使用 Meteor 构建一个响应式的销售图应用程序

步骤 1. 分析现有应用程序单击本文的 Run the app 按钮,尝试与销售图应用程序进行交互:
如果其他读者和您在同时试用这个应用程序,那么您还会看到他们的更新。
步骤 2. 创建项目代码Meteor 代码的工作原理使用 Meteor 时,您将使用 JavaScript 编写客户端逻辑和服务器逻辑。这个应用程序的客户端与服务器端代码都位于 sales.js 中。(此外,客户端服务器代码均位于各自的子目录中。)
Meteor 扫描客户端目录(与子目录)中的 CSS 样式文件和 JS 文件,这是它选择 jQuery 插件的方式。对于 HTML 文件,它通常会将所找到文件的 <head> 与 <body> 部分进行合并。
UI 通常使用 Spacebar 构造,它是一个类似于 Handlebars 的 Meteor 特定模板。在 sales.html 中,销售图应用程序的模板代码如下所示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<head>
<title>Sales by Region</title>
</head>

<body>
  <div id="title">
    <h1>Global Sales 2014</h1>
  </div>
  <div id="container">
    <div id="salestable">
        {{> salesdata}}
    </div>
        {{> piechart}}
  </div>
</body>

<template name="piechart">
    <div id="chart">
    </div>
</template>

<template name="salesdata">
  <div class="salesdata">
    {{#each dataset}}
      {{> datapoint}}
    {{/each}}
  </div>
</template>

<template name="datapoint">
  <div class="datapoint {{selected}}">
    <span id="{{_id}}_region" class="region">{{region}}</span>
    <span id="{{_id}}_total" class="sales editable">{{total}}</span>
  </div>
</template>




销售图的表是通过 salesdata 模板呈现的,其中包含一个用于每行的 datapoint 模板实例。chart <div> 是 jqPlot 插件呈现饼图的位置。此处创建了 jEditable 插件的一个实例,用于支持销售图的就地编辑(in-place editing)。
只要在 UI 中修改销售图,就会调用 Meteor 的客户端 MongoDB 实现 (mini-mongo) 来更新数字。然后,Meteor 的响应引擎会与服务器端的 MongoDB 实例进行同步。这次修改的内容将被传播给查看相同页面的所有浏览器或移动实例,而 Meteor 引擎会相应地更新本地试图。
惟一的服务器端代码会使用种子数据来初始化 MongoDB 实例:
1
2
3
4
5
6
7
8
9
10
if (Meteor.isServer) {
  Meteor.startup(function () {
      Sales2013.remove({});
      Sales2013.insert({region:"US East", total: 2032333});
      Sales2013.insert({region:"US Central", total: 150332});
      Sales2013.insert({region:"US West", total: 1202412});
      Sales2013.insert({region:"Asia Pacific", total: 701223});
                    
  });
}




步骤 3. 将应用程序部署到 Bluemix最终,您会看到一条失败消息,说明另一应用程序已经在使用名为 meteorsales 的 Bluemix 路由。清单中的应用程序名称(目前为 meteorsales)必须是您自己应用程序的惟一名称。此外,该清单目前指向我在 Bluemix 上的 MongoDB 服务实例,meteorsales 应用程序使用该实例进行存储。您的应用程序不能访问该实例。(您将在步骤 5 中更新清单。)
步骤 4. 创建一个 Bluemix MongoDB 服务实例现在创建您自己的 MongoDB 服务实例,并将它绑定到您的应用程序:
右上角的一条通知简要显示了 MongoDB 新实例的名称。如果您没有看到这条通知,那么可以滚动查看服务实例的列表,从中找到已命名的 MongoDB 实例。
步骤 5. 更新部署清单在 DevOps Services 项目中打开 manifest.yml 文件进行编辑。现在,它与我项目中的 manifest.yml 文件完全相同。
请注意,该清单使用了一个自定义的 buildpack。 基于 ,它专门针对将 Meteor 应用程序部署到 Bluemix 进行了修改。

1
2
3
4
5
6
7
8
9
10
11
applications:
- services:
- mongodb-bf
  host: meteorsales
  disk: 1024M
  name: meteorsales
  buildpack: https://github.com/Sing-Li/heroku-buildpack-meteorite
  path: .
  domain: ng.Bluemix.net
  mem: 1024M
  instances: 1




针对您的项目自定义清单:
步骤 6. 重新部署到    Bluemix 现在,您可以尝试着修改代码并根据需要重新部署它。
结束语您不再需要一排昂贵的部署工作站和开发服务器来开发运行在桌面浏览器与移动设备上的、高度交互的流数据更新 Web 应用程序。借助新一代的快速开发全堆栈平台,比如 Meteor(您可以将它与 DevOps Services 和 Bluemix 提供的基于云的开发人员工具结合使用),您可以在任何地方使用联网的浏览器来实现自己的创意。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0