Не удается получить index.html для отображения с помощью Express в Nodejs

Я пытаюсь запустить свое первое экспресс-приложение, но не могу показать свою веб-страницу. У меня есть следующий код:

var fs = require("fs");
var config = JSON.parse(fs.readFileSync("files/config.json"));  
var host = config.host;
var port = config.port;
var express = require("express");

var app = express();

app.use(app.router);
app.use(express.static(__dirname + "/public"));

app.get("/", function(request, response){
    response.send("hello!");
});

app.listen(port, host);
console.log("Listening on port" + port);

Вот мое дерево каталогов

nodejs/
    js/
        javascript.js
    public/
        index.html

Я знаю, что сервер работает, потому что я получаю"Hello!" ответ в браузере при запуске127.0.0.01:1337

Но когда я пытаюсь ввести веб-страницу1227.0.0.1:1337/index.html, Я получилCannot GET /index.html отображается в браузере

Так что я думаю, что-то не так сname ценность в моемget метод, но не могу понять, что это такое и как это исправить.

Ответы на вопрос(2)

Решение Вопроса

которые были настроены во время вашегоapp.use(app.router) вызов. Так что переупорядочитьapp.use призывает быть одним из следующих:

Экспресс 3
app.use(express.static(__dirname + "/public"));
app.use(app.router);

__dirname каталог, в котором находится исполняемый скрипт, так как он находится вjs каталог, который является пэромpublic Ваш код должен быть:

app.use(express.static(__dirname + "/../public"));
app.use(app.router);
Экспресс 4

Экспресс 4устраняет необходимость делать вручнуюapp.use(app.router), С Express 4 вам просто нужно:

app.use(express.static(__dirname + "/../public"));

 Vikas Bansal23 мая 2016 г., 12:12
Экспресс 4 примера работал на меня.app.use(app.router); выдает ошибку, что это устарело

что если вы запустите два рабочих пространства или проект в то время, то это создаст этот сценарий. так что вы можете одновременно открывать только рабочее пространство, а не только файл ... откройте папку дыр и запустите конкретный файл. Сделайте следующее изменение в настройках кода VS.

настроить параметры

Для 64-битной системы.

{
    "liveServer.settings.AdvanceCustomBrowserCmdLine: ": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
    "liveServer.settings.NoBrowser": false
}

Для 32-битной системы.

{
    "liveServer.settings.AdvanceCustomBrowserCmdLine: ": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
    "liveServer.settings.NoBrowser": false
}

Ваш ответ на вопрос