Почему sendFile игнорирует параметры, предоставленные для него? - PullRequest
0 голосов
/ 20 декабря 2018

Я использую следующий простой файл server.js для случайного указания на два разных HTML-файла на сервере.Однако он автоматически перенаправляется на index.html (даже не в параметрах), а не на index1.html или index2.html.

Я не уверен, что мне здесь не хватает

var express = require('express');
var app = express();
var port = process.env.PORT || 3000;

app.use(express.static('public'))

app.get('/', function(req, res) {
  if((Math.floor(Math.random() * 2) + 1)>1)
  {
    res.sendFile(__dirname + "/public/index1.html");
  }

    res.sendFile(__dirname + "/public/index2.html");
});

/*--------------------Routing Over----------------------------*/

app.listen(port, function () {
  console.log(`Server listening on port ${port}!`);
});

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Чтобы отправить index1.html или index2.html, вы должны использовать условие else.Кроме того, я использовал модуль пути для создания пути, что является наилучшей практикой.

var express = require('express');
var app = express();
var path = require("path");
var port = process.env.PORT || 3000;

app.get('/', function (req, res) {
    if ((Math.floor(Math.random() * 2) + 1) > 1) {
        res.sendFile(path.join(__dirname, "/public/index1.html"));
    } else {
        res.sendFile(path.join(__dirname, "/public/index2.html"));
    }
});

/*--------------------Routing Over----------------------------*/
app.listen(port, function () {
    console.log(`Server listening on port ${port}!`);
});
0 голосов
/ 20 декабря 2018

Когда я выполнил ваш код, он выглядел хорошо для меня и менял файлы index1.html и index2.html в случайном порядке.

Если вы хотите изменить также и маршрут, то я предложу ниже scenerio:

var express = require('express');
var app = express();
var port = process.env.PORT || 3002;

app.use(express.static('public'))

app.get('/index1.html', function(req, res) {
  res.sendFile(__dirname + "/public/index1.html");
});

app.get('/index2.html', function(req, res) {
  res.sendFile(__dirname + "/public/index2.html");
});



app.get('/', function(req, res) {
  if((Math.floor(Math.random() * 2) + 1)>1)
  {
    console.log("index1");
 res.redirect("/index1.html");
  }
  console.log("index2");
 res.redirect("/index2.html");

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