Javascript ExpressJS-在同一台Express服务器上使用不同的基本目录为多个Web应用程序提供服务

Javascript ExpressJS-在同一台Express服务器上使用不同的基本目录为多个Web应用程序提供服务,javascript,node.js,express,Javascript,Node.js,Express,我试图为一个网站提供不同路线的不同静态目录 如果对/tools*路由发出get请求,我希望使用/dist/toolsApp/目录作为前端代码的基本目录 如果对/net*路由发出get请求,我希望使用/dist/netIdApp/目录作为前端代码的基本目录 如果对*路由发出get请求,我希望使用/dist/homeApp/目录作为前端代码的基本目录 我很难确定在哪里插入app.useexpress.static\uu dirname+目录;代码行。我最初尝试下面的代码,但很快意识到这段代码是不对的

我试图为一个网站提供不同路线的不同静态目录

如果对/tools*路由发出get请求,我希望使用/dist/toolsApp/目录作为前端代码的基本目录

如果对/net*路由发出get请求,我希望使用/dist/netIdApp/目录作为前端代码的基本目录

如果对*路由发出get请求,我希望使用/dist/homeApp/目录作为前端代码的基本目录

我很难确定在哪里插入app.useexpress.static\uu dirname+目录;代码行。我最初尝试下面的代码,但很快意识到这段代码是不对的,因为我不想合并目录,因为它们有冲突的文件名

// Tools Routes
app.use(express.static(__dirname + '/dist/toolsApp/'));
app.get('/tools*', function(req, res) {
    res.sendFile(path.join(__dirname + '/dist/toolsApp/index.html'));
    });

app.use(express.static(__dirname + '/dist/netIdApp/'));
// Net-Id Authenticated Routes
app.get('/net*', function(req, res) {
  res.sendFile(path.join(__dirname + '/dist/netIdApp/index.html'));
});


app.use(express.static(__dirname + '/dist/homeApp'));
// Default Route
app.get('*', function(req, res) {
  res.sendFile(path.join(__dirname + '/dist/homeApp/index.html'));
});
然后我尝试为每个app.uses指定一个路由,如下所示。这似乎只发送了最后一条路线,我还尝试将最后一个app.use从“*”更改为“/”,但这并没有改变任何事情。这样做的结果是前端get请求在文件名后追加了一个“/”,从而使Express服务器将请求解释为一个目录,而不是一个常规文件。我真的不确定为什么会这样

// Tools Routes
app.use('/tools*', express.static(__dirname + '/dist/toolsApp/'));
app.get('/tools*', function(req, res) {
    res.sendFile(path.join(__dirname + '/dist/toolsApp/index.html'));
    });

app.use('/net*', express.static(__dirname + '/dist/netIdApp/'));
// Net-Id Authenticated Routes
app.get('/net*', function(req, res) {
  res.sendFile(path.join(__dirname + '/dist/netIdApp/index.html'));
});


app.use('*', express.static(__dirname + '/dist/homeApp'));
// Default Route
app.get('*', function(req, res) {
  res.sendFile(path.join(__dirname + '/dist/homeApp/index.html'));
});
// Tools Routes
app.use('/tools*', express.static(__dirname + '/dist/toolsApp/'));
app.get('/tools*', function(req, res) {
    res.sendFile(path.join(__dirname + '/dist/toolsApp/index.html'));
    });

app.use('/net*', express.static(__dirname + '/dist/netIdApp/'));
// Net-Id Authenticated Routes
app.get('/net*', function(req, res) {
  res.sendFile(path.join(__dirname + '/dist/netIdApp/index.html'));
});


app.use('*', express.static(__dirname + '/dist/homeApp'));
// Default Route
app.get('*', function(req, res) {
  res.sendFile(path.join(__dirname + '/dist/homeApp/index.html'));
});
最后,我尝试将该行放在相应的app.get中,但无法正常工作express不会发送前端文件

// Tools Routes
app.get('/tools*', function(req, res) {
    app.use(express.static(__dirname + '/dist/toolsApp/'));
    res.sendFile(path.join(__dirname + '/dist/toolsApp/index.html'));
    });

// Net-Id Authenticated Routes
app.get('/net*', function(req, res) {
  app.use(express.static(__dirname + '/dist/netIdApp/'));
  res.sendFile(path.join(__dirname + '/dist/netIdApp/index.html'));
});

// Default Route
app.get('*', function(req, res) {
  app.use(express.static(__dirname + '/dist/homeApp'));
  res.sendFile(path.join(__dirname + '/dist/homeApp/index.html'));
});
有人能帮我确定最好的方法是什么吗? 节点:v8.11.2
Express:

能够解决该问题,以下代码确实有效,它只是将文件分别放在address.com/tools/、address.com/net/、address.com/