2015-12-16 2 views
3

Je reçois une erreur lors de la demande de rx dans mon fichier. dans la console du navigateur, il est dit "Uncaught ReferenceError: require n'est pas défini"nécessitant RX.js dans node.js

version vérifiée et ref sur github mais ne voyez-vous pas ce qui ne fonctionne toujours pas? Je veux simplement essayer d'utiliser un message d'alerte en cliquant sur le bouton.

voici mon dossier observ.js situé dans/js

var Rx = require('rx'); 
var Observable = Rx.Observable; 

var button = document.getElementById('button'); 

var handler = function(e) { 
    alert('clicked!'); 
}; 

button.addEventListener('click', handler); 

ici est mon fichier html situé dans/publique

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>JS Bin</title> 
</head> 
<body> 
    <button id="button">Click me</button> 
    <script src="../js/observ.js"></script> 
</body> 
</html> 

ici est mon express app vient de servir html dans le dossier racine

var express = require('express'); 
var app = express(); 


app.use(express.static(__dirname + '/public')); 

app.get('/', function(req, res) { 
    res.render('index'); 
}); 

app.listen(process.env.PORT || 3000, function() { 
    console.log('Express listening on port 3000'); 
}); 

Répondre

3

En regardant le documentatio n. Il semble que vous deviez utiliser un chargeur AMD comme require.js pour exécuter ce code du côté client.

Par exemple:

<html> 
<head> 
    <title>test</title> 
</head> 
<body> 
    <button id='button'>Test</button> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.22/require.js"></script> 
    <script> 
     requirejs.config({ 
      paths: { 
       rx: 'rx' 
      } 
     }); 

     requirejs(['rx'], function(Rx) { 
      var Observable = Rx.Observable; 

      var button = document.getElementById('button'); 

      var handler = function(e) { 
      alert('clicked!'); 
      }; 

      button.addEventListener('click', handler); 

     }); 
    </script> 
    </body> 
</html> 

Pour voir l'exemple de travail, procédez comme suit.

  1. Copiez le code ci-dessus,
  2. Créer un nouveau dossier local/fichier html
  3. Collez le code ci-dessus dans le fichier HTML
  4. Créer un nouveau fichier appelé rx.js à la racine de votre nouveau dossier
  5. Copy rx code from here and paste it in the rx.js file

note: J'ai vérifié que cela fonctionne. Mais vous pouvez également regarder browserify si vous cherchez plus d'une approche isopmorphique.

+0

Merci, cela m'a aidé. –

0

Pour l'utilisation d'un nœud-module en frontend, utilisez browserify. Par défaut, Javascript n'a pas de mot-clé require, module, exports