meteor学习-- #一 安装meteor快速使用

[TOC]

下载安装


curl https://install.meteor.com/ | sh

meteor会自动下载mongodb和其他需要依赖的库,不需要手动安装.

如果是Windows 的用户,请使用 meteor 官方安装包,安装时,如果杀毒软件出现警告,请信任,防止出现无法使用meteor的情况,windows版本检查是否正确安装的方法是在命令提示行内,可以执行 meteor --version,出现您的meteor 版本号即可,这里不推荐使用Windows开发Meteor,因为无法正常打包出APP

创建项目


meteor create MyApp

创建一个APP


meteor create --list 

可查看meteor自带的例子,如下:

Paste_Image.png

创建例子中的项目


meteor create --example examplename

即可,例如


meteor ceate --example todos

输出如下


todos: created. 

To run your new app:    cd todos    meteor

运行 :


cd todos

meteor

服务默认运行在 localhost:3000上,

也可以直接使用命令 meteor run ios 让例子直接运行在模拟器上

Paste_Image.png

运行效果如下

Paste_Image.png

路径

meteor前后端都是用js写的,所以有些文件是前后端公用的

client 文件夹

只有前端能用

server 文件夹

文件只有后端能访问

其他

其他文件夹下的文件前后端都可以访问到

数据库访问

在服务器端

启动服务后 打开另一个窗口进入服务目录下

运行


meteor mongo

即可打开mongodb数据监控

mongodb会运行在服务端口+1的端口上, 例如 服务在3000端口上运行,则mongodb运行在3001端口

在客户端

首先要在js文件中定义好集合变量并且订阅好

例如


user = new Mnong,collection('user');

然后打开网页控制台 运行


user.find()

即可访问数据.

模板和路由

meteor 用的是handlebars模板

** iron 有性能瓶颈 flow:router 更好用 **

添加iron:router路由库,即可定义路由.

例如


Router.config(

    // 默认会渲染的模板

    layoutTemplate: 'appBody',



    // 指定模板找不到时渲染的模板

    notFoundTemplate: 'appNotFound',



    // 加载状态时的模板

    loadingTemplate: 'appLoading',



    // 等待时的操作

    waitOn: function(){

        return [Meteor.subscribe('publicLists'), Meteor.subscribe('privateLists')];

    }

).




//route.js定义好路由:



Router.route('detail',{path:'/u/:_id', name:'detail'});



Router.route('detail');

//如果不指定路径或者action,则默认找到如参数同名的模板,例如此路由会默认找到detail模板,如果不存在就会渲染在路由配置中指定的notfond页面.

{{#each users}}



//{{pathFor route='detail'}}



//此时a标签会取name值为detail的路由,href就是/u/_id的形式,



//路由path的parmes的key就是对象的同名key,对象不含有这个key的话,a标签就没有href属性



//同理,{{name}}如果不指定的话也会取对象中的name属性,不存在的话则没有值

{{name}}  {{/each}}

发布和订阅:

server.js中添加如下代码:


//(meteor的所有变量都是全局的[代码块中的除外],所以不加var);

u = new Mongo.Collection("posts");

//发布somePub频道,当有人订阅时返回posts数据库的数据

Meteor.publish('somePub', function() {

    return u.find()}

});

client.js中:


//即可实现前后端数据相同,否则前端js文件拿不到后端的数据.

Meteor.subscribe('somePub');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,569评论 19 139
  • Meteor是一个基于Nodejs+Websocket+MongoDB的Web应用程序开发平台。Metror的七个...
    IT小C阅读 5,705评论 2 9
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,275评论 6 342
  • 秋风习习,阳光正好,一大早在小朋友的殷殷盼望中,我们小四班的小朋友在老师和爸爸妈妈的带领下快乐的出发了! “我们这...
    lily卷毛妈阅读 495评论 0 0
  • 说到吉尔吉斯斯坦这个国家,我想大多数人的第一印象都是:没有印象。或者听说过,但具体它是怎样的一个国家,在地图上的哪...
    9f86c14f4b6e阅读 4,531评论 0 1

友情链接更多精彩内容