Экспресс не может загрузить индекс - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь настроить мой самый первый экспресс веб-сервер на AWS.Я могу получить привет мир, чтобы показать на порту 9000, если я пытаюсь просто использовать «res.send», однако мой код ниже выдает ошибку, и я считаю, что это связано с моей структурой каталогов, но я не могу понять, правильноспособ написать это.мой файл server.js находится внутри папки с именем home / server / server.js, однако мой индексный файл, который я пытаюсь загрузить, находится внутри home / web / index.html.Как мне написать это, чтобы он загружался правильно.вот мой код:

var express = require('express');
var app = express();

app.get('/', function (req, res){
    res.sendfile(__dirname + './../web/index.html')
    //res.send('Hello there, world!\n');
});

var port = 9000;
app.listen(port);
console.log('Listening on port', port);

Это ошибка, которую я сейчас получаю:

ForbiddenError: Forbidden
    at SendStream.error (/home/ubuntu/home/node_modules/send/index.js:270:31)
    at SendStream.pipe (/home/ubuntu/home/node_modules/send/index.js:554:12)
    at sendfile (/home/ubuntu/home/node_modules/express/lib/response.js:1099:8)
    at ServerResponse.res.sendfile (/home/ubuntu/home/node_modules/express/lib/response.js:498:3)
    at ServerResponse.eval [as sendfile] (eval at wrapfunction (/home/ubuntu/home/node_modules/depd/index.js:410:22), <anonymous>:4:11)
    at /home/ubuntu/home/server/server.js:30:9
    at Layer.handle [as handle_request] (/home/ubuntu/home/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/ubuntu/home/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/home/ubuntu/home/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/ubuntu/home/node_modules/express/lib/router/layer.js:95:5)

Спасибо за помощь!

1 Ответ

0 голосов
/ 26 апреля 2018

путь должен быть абсолютным или указать корень для res.sendFile

Для него можно использовать опцию root:

res.sendFile('index.html', { root: '.' })

Кстати,sendfile устарело, используйте sendFile.

...