Express res.sendFile ничего не делает - PullRequest
0 голосов
/ 28 мая 2020

У меня проблемы с express, я хочу запустить, выполнив localhost:3000/timer -> timetimer.html, но он не работает.

server.js:

var express = require('express');
var path = require('path');
var indexRouter = require('./routes/index');
var app = express();

app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use(function(req,res,next){
    res.status(404).send('Richiesta Sconosciuta');
    next();
});

app.listen(function () {
  console.log('Server in ascolto sulla porta 3000!');
});

module.exports = app;

index.js:

var express = require('express');
var path = require('path');
var router = express.Router();

router.get('/principale', function(req,res){
    res.sendFile('/principale.html', {root: path.join(__dirname,'../public')});
});

router.get('/timer', function(req,res,next){
    //res.sendFile('public/timetimer.html', {root: path.join(__dirname,'../public')});
    res.sendFile(__dirname + "/timetimer.html")
});


module.exports = router;

Структура папки:

Запуск кода работает, т.е. что server.js слушает 3000, но когда я пишу localhost:3000/timer, браузер не может получить доступ к сайту

Ответы [ 2 ]

1 голос
/ 28 мая 2020

вы не указали порт в app.listen

попробуйте:

app.listen(3000, function () {
  console.log('Server in ascolto sulla porta 3000!');
});
0 голосов
/ 28 мая 2020

__dirname - имя каталога текущего модуля.

Значит, это папка routes.

timetimer.html не находится в routes, поэтому вы передаете ей несуществующий путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...