Θέλω να τρέξω έναν πολύ απλό διακομιστή HTTP. Σε κάθε αίτηση GET προς το example.com
θα πρέπει να του σερβίρεται το index.html
αλλά ως μια κανονική σελίδα HTML (δηλαδή, η ίδια εμπειρία όπως όταν διαβάζετε κανονικές ιστοσελίδες).
Χρησιμοποιώντας τον παρακάτω κώδικα, μπορώ να διαβάσω το περιεχόμενο της index.html
. Πώς μπορώ να σερβίρω την index.html
ως κανονική ιστοσελίδα;
var http = require('http');
var fs = require('fs');
var index = fs.readFileSync('index.html');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(index);
}).listen(9615);
Μια από τις παρακάτω προτάσεις είναι περίπλοκη και απαιτεί να γράψω μια γραμμή get
για κάθε αρχείο πόρων (CSS, JavaScript, εικόνες) που θέλω να χρησιμοποιήσω.
Πώς μπορώ να εξυπηρετήσω μια ενιαία σελίδα HTML με μερικές εικόνες, CSS και JavaScript;
Αντί να ασχολείστε με μια δήλωση εναλλαγής, νομίζω ότι είναι καλύτερο να αναζητήσετε τον τύπο περιεχομένου από ένα λεξικό:
var contentTypesByExtension = {
'html': "text/html",
'js': "text/javascript"
};
...
var contentType = contentTypesByExtension[fileExtension] || 'text/plain';
Το δείγμα εφαρμογής Node.js Node Chat έχει τη λειτουργικότητα που θέλετε.
Σε αυτό's README.textfile
3. Βήμα είναι αυτό που ψάχνετε.
step1 >,
- Δημιουργήστε έναν διακομιστή που απαντά με hello world στη θύρα 8002 >, step2 >,
- δημιουργήστε ένα index.html και εξυπηρετήστε το >, step3 >,
- εισαγωγή util.js
- αλλάξτε τη λογική έτσι ώστε να εξυπηρετείται οποιοδήποτε στατικό αρχείο
- εμφάνιση 404 σε περίπτωση που δεν βρεθεί αρχείο >, step4 >,
- προσθήκη jquery-1.4.2.js
- add client.js
- αλλάξτε το index.html για να ζητήσετε από τον χρήστη να δώσει το ψευδώνυμό του
Εδώ είναι το server.js
Εδώ είναι το util.js