node js не работает на хостинге

358
22 сентября 2017, 21:50

Возникла проблема с запуском node js серверной части на удаленном хостинге.

Вчера оформил машину на cloud.digitalocean com( не является рекламой ) машинку оформил на Ubuntu Dokku 0.9.4 on 16.04

Все настроил, залил проект:

Иерархия:

~/public/index.html
~/Procfile
~/app.js
~/package.json

Содержимое:

/public/index.html

<h1>main page</h1>

/Procfile

web: node app.js

/package.json

{
  "name": "dokku-demo-application",
  "version": "1.0.0",
  "engines": {
    "node": ">=0.10.*",
    "npm": ">=1.3"
  },
  "dependencies": {
    "express": "~3.0"
  }
}

/app.js

var http = require("http");
var fs = require("fs");
console.log('create server');
http.createServer(function(request, response){
  console.log(`Запрошенный адрес: ${request.url}`);
  if(request.url.startsWith("/public/")){
    // получаем путь после слеша
    var filePath = request.url.substr(1);
    fs.readFile(filePath, function(error, data){
        if(error){
            response.statusCode = 404;
            response.end("Ресурс не найден!");
        }   
        else{
            response.end(data);
        }
        return;
    })
}
else{
    console.log('address is wrong');
    // во всех остальных случаях отправляем строку hello world!
    response.end("Hello World!");
}}).listen(50241, console.log('server run...'));

Логи:

root@server:/# dokku logs interactive_manager
2017-09-21T09:46:40.771912198Z app[web.1]: create server
2017-09-21T09:46:40.773412104Z app[web.1]: server run...

В консоль пишет, а страницу не отдает, и вообще на запросы не реагирует. При попытке входа на сайт пишет:

Не удается получить доступ к сайту
Превышено время ожидания ответа от сайта *тут мой IP*.
Попробуйте сделать следующее:...

Лог консоли:

GET http://мой IP:50241/public/index.html 
net::ERR_CONNECTION_TIMED_OUT
READ ALSO