INTRODUCTION TO METEOR
Pavel Kurnosov
What is Meteor?
Meteor is an ultra-simple environment for building modern websites. What once took weeks, even with the best tools, now takes hours with Meteor.
Install meteor
curl https://install.meteor.com | /bin/sh
Seven Principles of Meteor
Data on the Wire
Don't send HTML over the network. Send data and let the client decide how to render it.
One Language
Write both the client and the server parts of your interface in JavaScript.
Database Everywhere
Use the same transparent API to access your database from the client or the server.
Full Stack Reactivity
Make realtime the default. All layers, from database to template, should make an event-driven interface available.
Embrace the Ecosystem
Meteor is open source and integrates, rather than replaces, existing open source tools and
frameworks.
Simplicity Equals Productivity
The best way to make something seem simple is to have it actually be simple. Accomplish this through clean, classically beautiful APIs.
Inside Meteor
Meteor tool
build tool analogous to make, rake.
It gathers up all of the source files and assets in your application, carries out any necessary build
steps,
fetches the packages used by your app, and outputs a standalone, ready-to-run application bundle
Meteorite
tool that will help you download and manage your Atmosphere packages
Demo
Create and run first project using mrt
Everything package
Meteor is a library of packages: pre-written, self-contained modules that you might need in your app
Plans for 1.0 "Andromeda" release
DEMo
list of default packages and community packages
Application structure
Meteor automates the packaging and transmission of different components. And, it is quite flexible about how you choose to structure those components in your file tree
Few rules to remember :)
Security
By default, a new Meteor app includes the autopublish and insecure packages
Publish and Subscribe
These functions control how Meteor servers publish sets of records and how clients can subscribe to those sets.
Publish
Meteor.publish("rooms", function () { return Rooms.find({}, { fields: { secretInfo: 0 } }); });
Subscribe
Meteor.subscribe("rooms");
Rooms = new Meteor.Collection("rooms");
Methods
Methods are remote functions that Meteor clients can invoke.
//server side
Meteor.methods({
foo: function (arg1, arg2) {
check(arg1, String);
check(arg2, [Number]);
// .. do stuff ..
if (you want to throw an error)
throw new Meteor.Error(404, "Can't find my pants");
return "some return value";
}
});
//client side
Meteor.call('foo', 1, 2, function (error, result) { ... } );
Restrict client side code access to DB
Parties.allow({
insert: function (userId, party) {
return false;
}
});
Accounts and Authentication
It features secure password login using the Secure Remote Password protocol, and integration with external services
Accounts-ui package worth to mention it.
Input validation
Meteor provides a lightweight library for checking that arguments and other values are the type you expect them to be.
check(username, String)
DDP protocol
Connection using websockets and it give some security benefits like - no cookies
Deployment
Running on Meteor's infrastructure
$ meteor deploy myapp.meteor.com
Running on your own infrastructure
$ meteor bundle myapp.tgz
Demo
Questions?
Introduction to Meteor
By Pavel Kurnosov
Introduction to Meteor
- 3,088