Ingernirated
@Ingernirated
Романыч

Как реализовать статику на сервере?

Подскажите, как реализовать статику к этому коду?

var http = require("http");
var fs = require("fs");

http.createServer(function(request, response) {
fs.readFile("index.html", {encoding: "utf-8"}, function(error, file) {
response.writeHead(200, {"Content-type" : "text/html"});
response.write(file);
response.end();
});
}).listen(8000);
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 2
@LiguidCool
Ну так берите путь к файлу из реквеста и подставляйте в считывание.

let http = require("http");
let fs = require("fs");

http.createServer(function(request, response) {
  console.log(request.url);

  fs.readFile('.' + request.url, (err, data) => {
    if (err){
      response.writeHead(404, {"Content-type" : "text/html"});
      response.write('File not found');
      response.end();
      console.log(err);
    } else {
      response.writeHead(200, {"Content-type" : "text/html"});
      response.write(data);
      response.end();
    }
  });

}).listen(8000);


PS
Настоятельно не советую начинать ковырять Express, не разобравшись с нативными основами!
Ответ написан
ilnuribat
@ilnuribat
типо пишу программы
Так как Вы только только начали создавать сервер, то лучше будет перейти на Express, где вся статика отдается одной строкой
app.use(express.static('public'));
где в папе public хранятся все файлы на выдачу - index.html, javascript, css-ы.

Ссылка

Полный код:
var express = require('express');
var app = express();
app.use(express.static('public'));
app.listen(8000,  function() {
	console.log("Server started at " + 8000 + " port");	
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы