html-страница не загружается при запуске сервера javascript

#javascript #html #node.js #ajax #server

#javascript #HTML #node.js #ajax #сервер

Вопрос:

Итак, я создаю игру с использованием HTML, css и javascript, и я пытаюсь включить шаблонизаторы / ajax в эту задачу. Я создал сервер, который, если я запущу в cmd, а затем открою Google Chrome и введу ‘localhost: 3000’ в адресной строке, он должен направить меня на main.html страница.

Однако, когда я набираю ‘node server.js «в cmd он работает правильно, но когда я ввожу «localhost: 3000» в браузере, он говорит, что страница не существует. Я не уверен, что пошло не так. Если бы я вручную дважды щелкнул по html-файлу в моей папке, это сработало бы, но я пытаюсь заставить его загрузиться, запустив сервер.

У меня есть три папки (img, node_modules и pages) и 2 пакета json, которые были созданы путем установки express и pug. Здесь сложно объяснить пути к моим папкам и код, поэтому у меня есть ссылка на папку, содержащую мои файлы / вложенные папки, и это также дает более четкое представление о пути в моем каталоге: https://github.com/jessaisreal/game

Это не позволило бы мне загрузить папку node_modules, поскольку она была слишком большой, но я автоматически получил ее, введя «npm init», «npm install express» и «npm install pug» в строку cmd в папке.

Я предполагаю, что что-то не так с моим server.js файл или способ настройки моих папок. Я действительно отчаянно пытаюсь заставить свою программу работать и был бы признателен за любую помощь. Я понятия не имею, почему моя html-страница не загружается. Я также не уверен, правильно ли я обработал запрос GET для получения определенных шрифтов.

Я сократил свою программу настолько, насколько мог. Существует несколько файлов html и css, но для простоты здесь включены только create и main. Опять же, я был бы признателен за любую помощь или толчок в правильном направлении!!

server.js:

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

//user pug functrion to render through the create Page
const renderMain = pug.compileFile('pages/main.pug');
const renderCreate = pug.compileFile('pages/create.pug');


//Helper function to send a 404 error
function send404(response){
    response.statusCode = 404;
    response.write("Unknown resource.");
    response.end();
}

// Helper function to send 500 server error;
function send500(response){
    response.statusCode = 500;
    response.write("Server error.");
    response.end();
}


// initilize the server
const server = http.createServer(function (request, response) {
    //console.log(request.method " -> " request.url);  test about the income request

    // handle the get request
    if(request.method === "GET"){
        if(request.url === "/" || request.url === "/main"){
            let data = renderHome("./pages/main.pug",{})
            response.statusCode = 200;
            response.end(data);

        }else if(request.url === "/main.js"){
            //read main.js file and send it back
            fs.readFile("main.js", function(err, data){
            if(err){
                send500(response);
                return;
            }
            response.statusCode = 200;
            response.setHeader("Content-Type", "application/javascript");
            response.write(data);
            response.end();
            });
        }else if(request.url === "/main.css"){

            //read css file
            fs.readFile("main.css", function(err, data){
            if(err){
                send500(response);
                return;
            }
            response.statusCode = 200;
            response.setHeader("Content-Type", "text/css");
            response.write(data);
            response.end();
            });         
        }else{
            send404(response);
            return;
        }
    }
});

//Server listens on port 3000
server.listen(3000);
console.log('Server running at http://127.0.0.1:3000/');
  

Комментарии:

1. попробуйте нажать http://localhost:3000/ (да, с косой чертой в конце)

2. Включение /, похоже, тоже не работает. Автоматически получить «Этот сайт недоступен».

3. даже когда вы нажимаете / main ?

4. localhost:3000, localhost:3000 , localhost:3000 /main все это ни к чему не приводит. Я попытался загрузить zip-файл примера сервера от моего учителя и ввести localhost: 3000 работал для их программы. Но по какой-то причине, когда я пытаюсь реализовать сервер для своей собственной игры и выполнить те же шаги запуска server.js в cmd, а затем набрав localhost:3000, это ни к чему не приводит. Я не уверен, что мне чего-то не хватает в моем server.js файл или любой другой файл javascript.

Ответ №1:

Я настоятельно рекомендую вам использовать expressjs для лучшей организации вашего проекта, и эта проблема исчезнет

Комментарии:

1. Вот так!