在Express / Connect中配置上下文路径

时间:2012-02-24 23:54:05

标签: node.js express connect

我在Express / Connect / Jade / Less上使用Coffescript构建了一个Node.js应用程序。

该应用程序将部署在几个不同的位置和不同的上下文路径上,例如

  • http://someurl.com/
  • http://someotherurl.com/andthenthispath/

我遇到了实现这个问题的问题。我的目的是为上下文路径使用一个变量,并在第二个部署位置用一个环境变量填充它。

contextPath = process.env.CONTEXT_PATH || ''

然后我可以设置我的路线,

app.get contextPath + '/', anIndexFunction
app.get contextPath + '/bla', aBlaFunction

这开始看起来过于混乱,然后我还需要在任何其他位置提取此变量来构建网址。

我一直在寻找一种能够以更好的方式处理这种情况的Connect中间件,它是否存在?或者有一种标准的方法来处理这个问题吗?

2 个答案:

答案 0 :(得分:1)

你可以用Express

来做到这一点
const config = require('./config')
const argv   = require('yargs').argv
const express = require('express')
const router = express.Router()

const app = express()
router
    .route('/another-path')
    .post((req, res) => {
        // Your code here
    }

const contextPath = argv.contextPath  || config.contextPath || "/"

app.use(contextPath, router)
app.listen(port, host, () => console.log(`Server started on ${host}:${port}${contextPath}`))

答案 1 :(得分:0)

我并不过分熟悉快递,但是如果你确定你总是希望在它之前加上前缀,那么你就不能在get函数本身中加上它。礼物?