【问题标题】:Express Static variable folderExpress 静态变量文件夹
【发布时间】:2018-08-09 04:20:00
【问题描述】:

我有两个文件夹,每个文件夹包含每个商店的不同主题。

/angularApp_v1

/angularApp_v2

我有一个中间件来找出当请求进入时应该提供哪个文件夹。示例:

-- www.storev1.com 应该去 /angularApp_v1

-- www.storev2.com 应该去 /angularApp_v2

将每个域路由到正确的 express.static 文件夹的最佳方法是什么?

编辑:

var storeMiddlware = function(req, res, next) {
    getStoreTheme(req.hostname, function(response){
        req.storeTheme = response.theme;
    }
})

app.use(storeMiddleware);
app.use('/', express.static(req.storeTheme));

其中 req.storeTheme = 文件夹(angularApp_v1 或 angularApp_v2)

已解决:使用“serve-static

var themeAssests = {
    'v1': serveStatic('angularApp_v1'),
    'v2': serveStatic('angularApp_v2')
}

app.use("/", function(req, res, next) {
    themeAssests[req.storeTheme](req, res, next);
})

【问题讨论】:

  • 另外你有两个不同的主机名,一个是storev1,另一个是storev2,所以它们将运行在不同的端口上,这意味着不同的节点服务器
  • 那么不需要指定两个不同的文件夹,除非一个应用程序有两个不同的文件夹。
  • @zenwraight 每个文件夹是一个主题,商店可以选择哪个主题。因此它们需要托管在同一节点服务器上。数据库中有一个变量决定应为单个商店提供哪个文件夹
  • 文件夹可以动态变化,因此有一个中间件可以检查数据库并获取商店使用的主题。
  • @zenwraight 我更新了我的问题以包括中间件,以及我想要完成的示例。 express.static(req.storeTheme) 是不可能的,因为 req.storeTheme 在发出请求之前没有定义。

标签: angularjs node.js express mean-stack


【解决方案1】:

对于遇到此问题的任何人,请查看我的问题,我在那里提供了解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 2017-06-08
    • 2021-05-28
    • 2016-02-02
    相关资源
    最近更新 更多