JavaScript

NPM for everything™

NPM était à l’origine le package manager pour Node.js. Cependant, son rôle s’est aujourd’hui élargit pour devenir le package manager du JavaScript tout court. Aussi bien en front qu’en back, de plus en plus de modules et bibliothèques utilisent aujourd’hui NPM. On en fait même un task manager grâce aux scripts qu’il permet d’exécuter. Cela permet d’avoir un seul outil pour l’ensemble de nos process.

(suite…)

Compresser les images dans le navigateur

Uploader une image de profil, vous avez sûrement déjà vécu cette situation. Cette petite image qui ne fera au mieux que 250px * 250px. Mettez vous dans la peau de mamie du cantal, est-ce que vous croyez qu’elle va redimensionner sa petite image avant upload ? Redimensio-quoi ? Ok, notre bon utilisateur qui balance une image de 8000px * 6000px va devoir patienter un bon moment le temps d’envoyer tout ça avant que, enfin, le serveur optimise cette dernière.

Mais pourquoi ne pas faire tout ça directement dans le navigateur ?! On y gagne en tous points. L’utilisateur ne perd pas son temps à uploader xMb pour rien, vous économisez de la puissance serveur, vous ne frustrez pas celui qui sait (mais qui a la flemme d’ouvrir son Photoshop), et puis vous œuvrez pour la planète ! 5 bonnes raisons de faire ça dans le browser. On y va ?

(suite…)

Javascript asynchrone, les Promises à la rescousse

Tout est dans le titre. L’ES6 a apporté beaucoup de nouveautés, entre hype et réelle utilité, beaucoup d’encre a coulée. Les Promises ont été à l’honneur car elles sont un ajout notable au langage et pemettraient, apparemment, de nous affranchir du callback hell. Voyons dans cet article comment les utiliser pour une meilleure gestion du flux.

(suite…)

Télécharger des fichiers depuis le web en Node.js

Quelle que soit l’application sur laquelle on travaille, il arrive forcement un moment ou cette dernière doit automatiquement télécharger des ressources web. Des images de profil téléchargées depuis Gravatar ou Twitter par exemple. Voyons comment créer rapidement une fonction de téléchargement.

(suite…)

Programmation orientée objet en JavaScript

Le JavaScript est un des langages les plus utilisés et aussi un des plus populaires du moment. Côté client, côté serveur, il est omniprésent sur le web. Malgré cela, le JS demeure mal compris par un grand nombre de développeurs. Pourtant, à mesure que son usage s’intensifie et qu’il est le cœur d’applications de plus en plus complexes, il convient de bien appréhender son modèle objet. En route pour le royaume des objets !

(suite…)

Commandes essentielles de MongoDB

Lorsque, comme beaucoup, on vient du monde des bases de données relationnelles et de la syntaxe SQL, l’apprentissage et l’usage du noSQL est au début un peu déroutant. Voici donc un condensé des commandes les plus couramment utilisées (et utiles) dans MongoDB.

(suite…)

XHR cross domain avec Node.js

Les requêtes ajax entre domaines, ou XHR cross domain pour les intimes, permettent d’envoyer des requêtes JavaScript depuis une url A vers une url B. C’est par exemple ce que fait le script de Google Analytics. Il envoie des requêtes d’une url A (votre site) vers une url B (les serveurs de Google). De manière générale, cela sert par exemple pour faire des requêtes d’api. Pour d’évidentes raisons de sécurité, le CORS n’est pas activé par défaut. Voyons comment le paramétrer pour NodeJs.

(suite…)

Réaliser un panier 100% JavaScript

Une boutique de e-commerce nécessite la plupart du temps un panier. De nombreuses solutions peuvent répondre à ce besoin. Il est possible de mettre en place un panier côté serveur, d’adjoindre un plugin au framwork ou CMS utilisé pour le site etc. Cependant, nous allons voir comment programmer un panier 100% en JavaScript sans utiliser aucun plugin ni code côté serveur.

(suite…)

Backbone.js : recherche fulltext dans les collections

La plupart du temps, lorsque l’on effectue une recherche sur un site web, on envoie une requête au serveur – laquelle est directement adressée à la base de données – puis le serveur nous renvoie la réponse de cette recherche.

Cependant, avec les applications web, on possède souvent notre jeux de données sur le client (le navigateur), et une bonne partie de la navigation et des actions que l’on peut effectuer sont gérées directement au sein du navigateur en JavaScript. Backbone nous donne justement une structure et des outils pour construire de telles applications. Ainsi, puisque l’on dispose déjà des données dans le navigateur, il est logique d’effectuer notre recherche dans celui-ci plutôt que de le sous-traiter au serveur, avec comme inconvénient les temps de latence que l’on connait. Voyons comment effectuer une recherche directement dans nos collections Backbone.js

(suite…)

Hériter une fonction native jQuery

Pour ceux qui font de la programmation orientée objet A.K.A POO, le terme d’héritage est familier. Il s’agit simplement de prendre une fonction et de l’enrichir de nouvelles possibilités. On dit que la fonction fille hérite de la fonction mère (bien qu’en POO on hérite des classes et non des fonctions). Nous allons donc voir comment ajouter des fonctionnalités aux méthodes ou fonctions du cœur de jQuery.

(suite…)