2017-09-10 4 views
0

Ich möchte einen sehr einfachen Webserver wie diesen zum Beispiel machen.Laufender Knoten JS Server auf localhost

const http = require('http'); 

http.createServer(function (req, res) { 
    res.writeHead(200, { 
     'Content-Type': 'text/plain' 
    }); 
    res.write("Hello!"); 
    res.end(); 
}).listen(8080); 

Ich habe diesen Code in WebStorm und lief es. Dann lege ich das selbe Verzeichnis index.html ein.

<body> 
    <button id="btn">Click Me</button> 
    <script src="https://code.jquery.com/jquery-3.2.1.js"></script> 
    <script src="requester.js"></script> 
</body> 

Ich habe auch requester.js Datei in den gleichen Ordner.

$('#btn').on("click", function() { 
    $.get('/', function() { 
     console.log('Successful.'); 
    }); 
}); 

Dann führe ich den Befehl Live-Server in diesem Ordner, wo alle Dateien sind. Ich weiß nicht, wie man den Server auf localhost arbeiten lässt. Vielen Dank im Voraus.

+0

Sie haben keine Anstrengungen unternommen, die Datei tatsächlich an den Benutzer zu senden. Werfen Sie einen Blick auf http://expressjs.com, vor allem ihre .static-Methode ... –

+0

Ich muss dies nur mit HTTP-Modul tun. Ist es möglich? –

+0

Ja. Sehen Sie sich die Dateien .sendFile, fs.readFile, Streams an. –

Antwort

1

Sie möchten Ihre index.html Datei anstelle der Zeichenfolge „Hallo“ senden:

const http = require('http'); 
const fs = require('fs'); 
const path = require('path'); 

http.createServer(function (req, res) { 
    //NOTE: This assumes your index.html file is in the 
    // . same location as your root application. 
    const filePath = path.join(__dirname, 'index.html'); 
    const stat = fs.statSync(filePath); 

    res.writeHead(200, { 
     'Content-Type': 'text/html', 
     'Content-Length': stat.size 
    }); 

    var stream = fs.createReadStream(filePath); 
    stream.pipe(res); 
}).listen(8080); 

von der Komplexität des Servers in der Zukunft je, können Sie express als Alternative zu den eingebauten untersuchen möchten im HTTP-Modul.