IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Node.js peut-il être utilisé côté client


Sujet :

NodeJS

  1. #1
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 315
    Points : 345
    Points
    345
    Par défaut Node.js peut-il être utilisé côté client
    bonjour,

    node.js c'est du javascript pour serveur mais est-ce qu'on peut créer du code javascript executé côté client ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu ne pourras pas utiliser les API nodejs côté client si c'est ta question.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 506
    Points : 1 289
    Points
    1 289
    Par défaut
    Citation Envoyé par mapmip Voir le message
    bonjour,
    node.js c'est du javascript pour serveur mais est-ce qu'on peut créer du code javascript executé côté client ?
    Merci d'avance
    Oui.

  4. #4
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 315
    Points : 345
    Points
    345
    Par défaut
    auriez vous un exemple de code ?

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    res.write('<script>alert("Magic !")</script>');
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je trouve que la question initiale n'est pas claire. Si tu veux exécuter du code utilisant les API nodejs côté client, oublie. Si tu veux que nodejs envoie du contenu JS (utilisant des API clientes) au client pour qu'il y soit exécuter, c'est effectivement possible, cf l'exemple de Bovino.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Pour étoffer un peu la réponse d'Enerian, tu sembles surtout vouloir utiliser Nodejs sans vraiment savoir ce que c'est.

    Il ne faut pas se laisser tromper par l'utilisation de JavaScript côté serveur.
    En clair : ce n'est pas parce que Node est du JavaScript côté serveur que le code écrit pour le serveur sera valable pour le navigateur. Les deux ont des rôles, des contraintes et des technicités diamétralement opposées.

    Bref, essaye de voir Node comme un équivalent de tout autre langage serveur (PHP, Java, .Net, etc.) qui sert donc à faire des traitements sur le serveur et de produire un contenu (donc généralement HTML + CSS + JavaScript) à envoyer au navigateur afin qu'il le transforme en page Web.

    Donc le JavaScript serveur et le JavaScript client ne travaillent ni au même moment, ni dans le même environnement. De ce fait, le JavaScript client est un langage essentiellement événementiel et réagissant aux interactions de l'utilisateur, les API mises à disposition par le navigateur sont dans la grande majorité basées là-dessus et sur la manipulation du DOM. Or côté serveur, les événements utilisateur n'ont aucun sens, pas plus que la notion de DOM.
    Inversement, les API mises à disposition de Node et permettant d'utiliser les ressources du serveur n'ont aucun sens dans le navigateur.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Il veut peut-être utiliser du code JavaScript à la fois côté serveur que côté client ?

    Il y a pas mal de librairies (Browserify, Webmake, Webpack) qui fleurissent autour de cette problématique. Comment dois je organiser/écrire mon code pour qu'il soit disponible à la fois pour Node et pour le Navigateur.
    Par exemple jQuery (2.x seulement, Node 0.10), peut désormais être utilisé aussi bien côté serveur que client.

    On appelle ça le UMD pattern (Universal Module Definition). Cela permet d'empaqueter le code JavaScript afin qu'il soit exécutable qu'importe l'environnement. Une implémentation possible :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    (function (root, factory) {
      if (typeof exports === 'object') {
        // CommonJS
        module.exports = factory(require('b'));
      } else if (typeof define === 'function' && define.amd) {
        // AMD
        define(['b'], function (b) {
          return (root.returnExportsGlobal = factory(b));
        });
      } else {
        // Classique, var globale
        root.returnExportsGlobal = factory(root.b);
      }
    }(this, function (b) {
     
      // Ici le code du module
     
      return {};
    }));

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/12/2014, 14h44
  2. Réponses: 0
    Dernier message: 16/09/2014, 15h17
  3. Réponses: 11
    Dernier message: 06/11/2008, 09h49
  4. REDEFINES peut-il être utilisé avec un 77 ?
    Par beegees dans le forum Cobol
    Réponses: 2
    Dernier message: 17/01/2008, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo