使用 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`);
});
我希望能够根据域设置 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`);
});