2012-02-24 36 views
3

Express/Connect/Jade/LessのCoffescriptを使用してNode.jsアプリケーションを構築しました。Express/Connect内のコンテキストパスの設定

アプリは、私がこれを達成する問題が発生してい

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

例えば、異なる場所のカップルで、異なるコンテキストパスに展開されます。私の意図は、コンテキストパスに変数を使用し、2番目の展開場所に環境変数を設定することでした。私はそのようにように私のルートを設定することができます

contextPath = process.env.CONTEXT_PATH || '' 

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

これは過度に乱雑になり始めている、と私はまた、構築していきます他の場所でこの変数にプルする必要がありますurl。

私はこのシナリオをより良い方法で処理するConnectミドルウェアを探していましたが、それは存在しますか?またはこれを処理する標準的な方法はありますか?

答えて

0

私はexpressにあまり慣れていませんが、getfunction関数内にCONTEXT_PATHの値を前置することはできません。

+0

と私は私はあなたが言っているのか理解していないことを行うことができます。上記で使用したget関数(app.get)はルーティングを設定しており、その時点では何も取得されていません。私の現在の解決策は、各マッチャーにコンテキストパスを先行させています。 –

+0

私は、アプリケーション自体の内部にCONTEXT_PATHを追加し、組み込みのExpress "get"関数を変更してその値を前につけることを意味しました。ここで議論されたものに非常に似ています:http://stackoverflow.com/questions/4375554/is-it-possible-to-set-a-base-url-for-nodejs-app –

1

あなたはエクスプレス

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}`)) 
関連する問題