Javascript Node.js忽略站点根目录的get处理程序

Javascript Node.js忽略站点根目录的get处理程序,javascript,node.js,express,Javascript,Node.js,Express,我有一个Node.js服务器,其设置简化如下: const express=require('express'); 常量app=express(); const http=require(“http”); const path=require('path'); const-favicon=require('service-favicon'); //公共文件是静态的 app.use(express.static(path.resolve('./public')); //发球图标 应用程序使用(fa

我有一个Node.js服务器,其设置简化如下:

const express=require('express');
常量app=express();
const http=require(“http”);
const path=require('path');
const-favicon=require('service-favicon');
//公共文件是静态的
app.use(express.static(path.resolve('./public'));
//发球图标
应用程序使用(favicon(路径解析('./public',Pictures',favicon.ico'));
http.createServer(应用程序、函数(请求、资源){
书面记录(200);
res.end(“你好,世界”);
}).听();
app.get('/',函数(req,res){
设b=someFunction();
如果(b){
res.redirect('/option/one');
}
否则{
res.redirect(“选项/2”);
}
})
我在网络托管服务上运行此功能,当我访问我的网站时,例如,我想要的是重定向到myDomain.com/option/one或myDomain.com/option/two。然而,取而代之的是,myDomain.com从我的“public”目录响应index.html,而不重定向我

我发现,如果我删除这两行,就不会发生这种情况

// Files in public are static
app.use(express.static(path.resolve('./public')));
// Serve icon
app.use(favicon(path.resolve('./public', 'Pictures', 'favicon.ico')));

然而,仅仅删除它们并不是一个好的解决方案,因为public包含许多文件(javascript、样式表、html、图片等),这些文件需要相互交叉,并且为每个文件创建一个node.js get处理程序似乎是次优的解决方案。如何修复此问题?

要修复此问题,您也可以这样做。这会将默认值设置为false

app.use(express.static(path.resolve('./public'), {
    index: false
}));
另一种方法是更改代码的顺序。把

app.use(express.static(path.resolve('./public')));

在/get函数之后。

要解决此问题,您可以这样做。这会将默认值设置为false

app.use(express.static(path.resolve('./public'), {
    index: false
}));
另一种方法是更改代码的顺序。把

app.use(express.static(path.resolve('./public')));
在/get函数之后