Запуск локального сайта через сервер node?

Сразу извиняюсь за такие смешные вопросы, но раньше с серверами работать не приходилось и, объясните пожалуйста, как запустить мой локальный сайт через сервер node. У меня есть директория с файлами index.html и server.js с кодом
var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World 11");
  response.end();
}).listen(8888);

Я запустил сервер в этой директории и все работает, но как теперь в этом сервере открыть мой файл index.html ?
  • Вопрос задан
  • 11525 просмотров
Решения вопроса 2
k12th
@k12th
console.log(`You're pulling my leg, right?`);
как теперь в этом сервере открыть мой файл
Это называется serve static content. По умолчанию такой функциональности нет, но сделать очень просто: по соответствующему запросу читать файл и отдавать его через response.write. Чтобы было еще проще и с плюшками, есть пакет serve-static, там в примерах все описано.
Ну или чтоб совсем код не писать, можно так: https://www.npmjs.com/package/static-server
Ответ написан
Комментировать
Androguide
@Androguide
TeamLead AG
Вам потребуется express для простоты работы.
Устанавливаем
npm i express --save

Код сервера server.js:
var app = require('express')();
var http = require('http').Server(app);

app.get('/', function(req, res){
  res.sendfile('index.html');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});


Запускаем сервер:
node server.js

По адресу localhost:3000 будет ваш сайт.

ищите информацию по nodejs express
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
YouReTs
@YouReTs
Лучше через файловую систему...

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

const hostname = '127.0.0.1';
const port = 3000;
fs.readFile('index.html', (err, html) => {
  if(err){
    throw err;
  }
  const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-type', 'text/html');
    res.write(html);
    res.end('Привет YouReTs GSMNeXus.Ru!');
  });

  server.listen(port, hostname, () => {
    console.log("Сервер запущен на порту:  " + port);
  });

})
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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