为什么sendFile忽略为其提供的参数?

时间:2018-12-19 21:21:12

标签: node.js express

我正在使用以下简单的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 :(得分:0)

我执行您的代码时,对我来说还不错,并且可以随机更改文件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);

答案 1 :(得分:0)

要发送index1.html或index2.html,您必须使用else条件。此外,我已经使用路径模块来创建路径,这是最佳实践。

onDestroyView()