使用 Node 和 Express 制作条件 app.use()?

Making a conditional app.use() with Node and Express?

我希望能够根据域设置 app.use() 路径,我的 Node.JS 服务器收到关于 return 一组文件或另一组文件的请求。我已经尝试使用以下代码,但是在测试文件时从未 returned 到客户端。

app.use('/scripts', (req, res) => {

    if (req.host == `mysite.com`) {

        express.static(path.resolve(__dirname, 'landing', 'frontend/scripts'));
        
    } else if (req.host == `admin.mysite.com`) {

        express.static(path.resolve(__dirname, 'admin', 'frontend/scripts'));
    }
});

我正在使用 express 作为依赖来尝试执行此操作,但无济于事,如果这可以帮助解决我的问题,我愿意尝试其他软件包。

未测试,但我假设您可以保留对每个静态路由的引用,然后只转发请求,不要忘记下一步,以便可以处理正常的 404。

例如

const static1 = express.static(path.resolve(__dirname, 'landing', 'frontend/scripts'));
const static2 = express.static(path.resolve(__dirname, 'admin', 'frontend/scripts'));

app.use('/scripts', (req, res, next) => {
    if (req.hostname == `mysite.com`) {
        static1(req, res, next);       
    } else if (req.hostname == `admin.mysite.com`) {
        static2(req, res, next);
    } else res.end(`host: ${req.hostname} not found`);
});