Nach dem Einrichten einiger Dateien (index.html und ws.js [welche den Server einrichtet]), kann ich keine zusätzlichen JS-Dateien, die meine Website verwendet, hinzufügen . Ich habe versucht, require()
die zusätzlichen Dateien, aber ohne Erfolg. Wenn ich node ws.js
ausführen, wird der Server hochgefahren und index.html wird angezeigt, aber die Schaltflächen (mit der in run.js definierten Funktionalität) sagen "Ersetzen ist nicht undefiniert". Ich betreibe den Server über den Befehl node ws.js
und auf die Website über die URL localhost:8080
zugreifen. Ich hatte ursprünglich keine Modulexporte, und es funktionierte immer noch nicht. Ich habe all das zum Laufen gebracht, wenn ich einfach auf index.html doppelklicke, also weiß ich, dass es lokal funktioniert (wenn das der richtige Begriff ist).Website funktioniert lokal, aber nicht auf NodeJS Webserver, Anfänger
Hier ist meine ws.js Datei:
var http = require("http");
var fs = require("fs");
var events = require("events");
var serveStatic = require("serve-static");
var eventEmitter = new events.EventEmitter();
var run = require("./run.js");
run();
http.createServer(function (request, response) {
fs.readFile('index.html', function(err, data) {
// Send the HTTP header
// HTTP Status: 200 : OK
// Content Type: text/plain
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
return response.end();
});
}).listen(8080);
// Console will print the message
console.log('Server running at http://127.0.0.1:8080/');
console.log(__filename);
console.log(__dirname);
(function() {
function hi() {
alert("This is working!");
}
})();
Hier ist meine run.js Datei:
function run() {
function testerClicked() {
alert("Tester has been clicked!");
}
function replace() {
var temp = (document.getElementById("tester").innerHTML === "This is a button." ? "This button has been pressed!" : "This is a button.");
document.getElementById("tester").innerHTML = temp;
}
}
module.exports = run;
Das ist die Linie, wo ich die Funktion in HTML bin Aufruf:
<button id='tester' onclick="replace()">This is a button.</button>
Sorry, wenn dies eine grundlegende Frage ist. Ich lerne gerade über Server und JavaScript/HTML/CSS.
Es scheint, dass Sie Ihre HTML-Datei bereitstellen, aber dienen Sie Ihre zusätzlichen Javascript/Asset-Dateien? – FrankerZ
Ich verlinke die JavaScript-Dateien in meiner index.html. Muss das "Serving" in ws.js durchgeführt werden? – musikreck
Wenn Sie auf eine Webseite gehen, antwortet die Datei index.html auf Ihrem Knotenserver und lädt diese Datei herunter. Wenn Sie in Ihrer index.html '' haben, wird der Browser eine weitere Anfrage an den Server stellen, um 'bundle.js' anzufordern (was Ihre ws.js-Datei nicht behandelt). Probieren Sie [this] (https://github.com/expressjs/serve-static) aus, um statische Inhalte zu liefern. – FrankerZ