Comment inclure du javascript côté client de node.js?
Je suis un débutant de node.js et javascript.
Je veux externe fichier javascript dans le code html. Voici le code html, "index.html":
<script src="simple.js"></script>
Et de, voici le code javascript, "simple.js":
document.write('Hello');
Quand j'ai ouvert le "index.html" directement sur un navigateur web(par exemple, Google Chrome), Il fonctionne.
("Bonjour" message doit être affiché sur l'écran.)
Cependant, quand j'essaye d'ouvrir l' "index.html" via node.js serveur http, Il ne fonctionne pas.
Ici, c'est le node.js fichier, "app.js":
var app = require('http').createServer(handler)
, fs = require('fs')
app.listen(8000);
function handler (req, res) {
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
("index.html", "simple.js" et "app.js" sont sur le même répertoire.)
J'ai commencé le serveur http. (par "bash$node app.js")
Ensuite, j'ai essayé de le connecter "localhost:8000".
Mais, le message "Hello" n'apparaît pas.
Je pense que le "index.html" a omis d'inclure la "simple.js" sur le serveur http.
Comment dois-je faire?
OriginalL'auteur lancif | 2013-07-18
Vous devez vous connecter pour publier un commentaire.
Le problème est que nomatter ce que votre navigateur demande, vous de retour "index.html". Ainsi, le navigateur de chargement de votre page et d'obtenir de l'html. Que html comprend votre balise de script, et le navigateur va demander nœud pour le script-fichier. Cependant, votre gestionnaire est configuré pour ignorer ce que la requête est, jusqu'à ce qu'il retourne le code html, une fois de plus.
Un des conseils rapides. Si vous utilisez un raisonnable navigateur, vous devriez être en mesure de voir l'demandé et répondu de données assez facilement. Essayez de cliquer
F12
dans votre navigateur, et de regarder pour quelque chose nommé "réseau" ou "demande" (ou similaire, dépend du navigateur).OriginalL'auteur Alxandr
Alxandr est droit. Je vais essayer de clarifier sa réponse.
Il arrive que vous avez à écrire un "routeur" pour vos demandes. Ci-dessous c'est une façon simple de le faire fonctionner. Si vous regardez de l'avant http://www.nodebeginner.org vous permettra de trouver un moyen de construire un bon routeur.
OriginalL'auteur Samuel
Voici un code qui fonctionne.
Il devrait être plus propre, plus simple de code, mais c'est très proche du minimum.
Ce code suppose que votre index.html et d'autres fichiers sont dans /client dir.
Bonne chance.
OriginalL'auteur Ken OKABE
Votre gestionnaire est codé en dur à toujours retourner le contenu de
/index.html
. Vous avez besoin de prêter attention à la ressource qui est demandé et le retour de la droite. (c'est à dire si le navigateur vous le demandesimple.js
alors vous avez besoin de lui donnersimple.js
au lieu deindex.html
).OriginalL'auteur Quentin
OriginalL'auteur zloctb