我在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中间件,它是否存在?或者有一种标准的方法来处理这个问题吗?
答案 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函数本身中加上它。礼物?