7
votes

Utilisation de modules nœud.js en HTML

J'ai le projet NODE.JS suivant (qui est un exemple de travail minimal de mon problème):

module1.js strong>: p>

<script src='require.js'></script>
<script>
    var module2 = require('module2');
    alert(module2());
</script>


8 commentaires

À ma connaissance, vous ne pouvez pas appeler vos modules de noeud de pages HTML. Pour cela, vous devrez transmettre les données de serveur.js à la page HTML à l'aide d'une bibliothèque de modèles.


@umair Je n'ai pas besoin de la page client.html pour contacter le programme Server.js - Ce sont deux applications indépendantes.


Puis écrivez-les comme des fonctions JavaScript plutôt que des modules de noeuds et incluez le script de votre HTML


Je souhaite utiliser le même module, module2.js, à la fois dans Client.HTML et dans Server.Js, sans duplication de code.


Avez-vous vérifié dans votre journal de serveur que votre nécessite ('module2') trouve le fichier que vous attendez à trouver? Comme, est ce fichier disponible publiquement?


@JuanPaco Le programme Server.Js fonctionne bien - il imprime la chaîne "Ceci est module1! Et c'est le module2!", ce qui signifie qu'il trouve les deux modules correctement. Le problème est avec client.html.


Je veux dire lorsque le client demande le module. Essayez-vous d'utiliser le module2 avant votre serveur rend la réponse au client? Ou essayez-vous d'avoir le module d'accès à la page rendu2 et d'utiliser après envoyé au client? J'ai compris ce dernier de votre description.


@Torben Que dites-vous?


3 Réponses :


1
votes

Vous pouvez aussi essayer SIMQ avec lequel je peux vous aider.


2 commentaires

Merci! La raison pour laquelle je n'utilise pas SIMQ est qu'elle nécessite un fichier de configuration, tandis que mes besoins sont beaucoup plus simples et peuvent être résolus sans fichier de configuration.


Bien que cela puisse répondre théoriquement à la question, Il serait préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence .



8
votes

Le problème est que vous utilisez des modules CJS, mais j'essaie toujours de jouer de l'ancienne façon avec des scripts en ligne. Cela ne fonctionnera pas, c'est ceci ou cela.

Pour tirer pleinement parti du style CJS, organisez votre code côté client exactement de la même manière forte> comme vous le feriez pour le côté serveur, donc:

Créer client.js: p> xxx pré>

Créer un ensemble avec navigation (ou tout autre Bundler CJS de votre choix): P>

<script src="client.bundle.js"></script>


0 commentaires

1
votes

Vos problèmes de smoothie exigent, ont été causés par un bogue ( https://github.com/ Letorbi / Smoothie / Problèmes / 3 ). Mon dernier commit a corrigé ce bogue, votre exemple devrait donc fonctionner sans modifier maintenant.


0 commentaires