MeteorJS – Trucs et Astuces

Comment spécifier sur quel Ip/Host et Port Meteor doit t’il démarrer ?

Par défaut, en mode devl, Meteor démarre sur localhost:3000.

Il est parfois utile de spécifier à Meteor de binder un nom de domaine / port différent (par exemple pour mettre en place une authentification via un réseau social genre Facebook, Twitter, …).

Pour cela il faut utiliser la commande ci-dessous pour exécuter Meteor:

Et Voilà…

Exception « OAuth Server Failed to send OAuth1 request » avec le  module Accounts-Twitter ?

Vous essayez de mettre en place une authentification Twitter dans votre appli Meteor et vous vous retrouvez avec une jolie erreur « Internal Server Error » dans le formulaire de login après avoir cliqué sur « Sign in with Twitter »?

Vous avez une exception dans la log meteor du genre :

  • Hypothèse 1: les consumerKey/secret key sont invalides. (fail lors du copier/coller) .
    Voir la question « Comment vérifier/changer les consumerKey/ secret key d’un module accounts-twitter|accounts-facebook|… ? » ci dessous.
  • Hypothèse 2: (c’était mon cas) l’heure de votre serveur n’est pas d’équerre

Note: Pour activer le réglage de l’heure automatique dans une debian :

après l’install de NTP l’heure devrait être correcte (sinon voir le lien suivant https://wiki.debian.org/DateTime)

Pour verifier l’heure taper la commande

Et Voilà…

Comment vérifier/changer les consumerKey/ secret key d’un module accounts-twitter|accounts-facebook|… ?

Les modules meteor accounts-xxx sont super simples a mettre en place, il suffit de suivre les étapes décrites dans un joli formulaire web et de rentrer les consumer key/secret key et Hop! le tour est joué. Problème une fois le premier setup effectué, le formulaire n’est plus accessible donc il faut aller trifouiller la base de données Mongo pour vérifier/changer les consumerKey/secret key.

Je vais prendre pour exemple l’authentification Twitter (c’est le même principe pour les autres mode d’authentification).

Dans un terminal, se placer dans le dossier de votre appli, puis:

une fois le prompt mongo disponible, faire la query suivante:

Vous devriez avoir une réponse du genre:

Là vous pouvez vérifier le consumerKey et le secret.

Si vous voulez les modifier alors il suffit d’exécuter un petit Update du genre:

Et Voilà…

 

MeteorJS – La mise en place

Les premiers pas avec MeteorJS sont super simples.  Vous allez voir…

meteor-banner-wide

Installation

Pour l’instant MeteorJS ne tourne pas sur Windows, étant  un devl .Net à la base je n’ai que du Windows sous la main. Donc, perso, pour faire du MeteorJS je lance une Debian avec virtual box et Hop! le tour est joué.

Dans le prompt shell lancer la commande suivante:

Cela va installer le package meteor.

Executez la commande suivante pour s’assurer que meteor est bel et bien installé:

la reponse devrait ressembler à

Première Appli

Créez et placez vous dans un dossier qui contiendra toutes les super applis meteor que vous allez créer. Par ex: /home/<user>/meteor/

Lancer la commande suivante pour créer votre première appli Meteor:

Meteor crée alors un dossier first-app avec tout ce qu’il faut pour bien commencer.

lancer les commandes suivantes pour éxecuter l’appli meteor « first app »:

Après quelques instants vous allez voir les message suivants :

Ce qui veut dire que Meteor éxecute votre appli  « first-app » sur localhost et sur le port 3000.

Lancez un navigateur Web (perso depuis ma machine Windows) et naviguez vers http://localhost:3000

Et là vous devriez tomber sur une page :

Capture

Cliquez sur le bouton et vous verrez que le compteur de click s’incrémente.

Dans le prochain Post on examinera le code source de cette application (qui ne fait pas grand chose pour l’instant) :-)

Meteor JS – Watitiz?

Après avoir passé pas mal de temps à faire joujou avec NodeJS, ExpressJS et Socket.io, je me rends compte à quel point il peut être difficile de coder une application Web qui soit ultra réactive. A tel point qu’espérer coder une application qui reflète en temps réel les changements effectués dans une base de données est un rêve.

Par exemple une application de chat multi-utilisateur avec historique des messages, notion de messages lus/non-lus, affichage en temps réel et en plus gestion login social Twitter/Facebook/Gmail peut vite prendre plusieurs jours de coding avant d’avoir un proto qui roulotte…

J’étudie depuis peu MeteorJS qui me semble assez efficace surtout quand on aime bien coder en JS…

« Meteor is a complete open source platform
for building web and mobile apps
in pure JavaScript.

Je vais consacrer quelques Posts à ce sujet:

A venir…