2016-07-15 5 views
0

私はauth0バックエンドセットアップのチュートリアルに従っています。app.jsの代わりに別のファイルにルートを設定する方法が不思議です。チュートリアルでノード+エクスプレスアプリでルートを設定して認証メソッドを渡すにはどうすればよいですか?

、私はいくつかのルートフォルダroutes/index.jsで私のルートを設定したい、と私は、このauthenticate()を使用したい場合、彼らは私がどのように設定できるか、

var authenticate = jwt({ 
    secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'), 
    audience: process.env.AUTH0_CLIENT_ID 
}); 

、その後app.use('/secured', authenticate);

を作成それは私のapp.jsにある?

私はvar routes = require('./routes/index.js');のような何かをしなければならないと知っていますが、を設定するにはどうすればauthenticate()を使うのですか?

おかげ

答えて

3

あなたはこのよう./routes/index.jsroutesモジュールを定義することができます。

// ./routes/index.js 

module.exports = function (app) { 
    app.get('/secured', getSecuredController); 
}; 

function getSecuredController (req, res) { 
    res.send('/secured OK'); 
} 

そして、あなたのメインのapp.jsファイル内:

// ./app.js 

var initializeRoutes = require('./routes'); 
var authenticate = jwt({..}); 

app.use('/secured', authenticate); 
initializeRoutes(app); 
+0

これはうまくいきましたが、 '/ v1/test'を押すと404が表示されます。私のapp.jsには、 'app.use( '/ v1'、authenticate)があります。私のroutes.jsには 'module.exports = function(app){app.get( '/ test')、function(req、res、next){res.json({message:こんにちは' }); }); } ' – user1354934

+0

'/v1/test'ではなく '/ test'のルートを定義しました;-) –

+0

ああ!そうですか。ありがとうございました!私は後に定義されたルートが/ v1に追加されるだろうと思った – user1354934

1

あなたは、ファイルのルート/ index.jsからルータを返すことができます。

// routes/index.js 

const express = require('express'); 

module.exports = function(options) { 
    const router = express.Router(); 

    router.get('/', (req, res, next) => { 
     // process route... 
    }); 

    // define other routes... 

    return router; 
}; 

とサーバで使用すること:

// server.js 

const express = require('express'); 
const router = require('./routes/index.js'); 

const authenticate = jwt({ 
    secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'), 
    audience: process.env.AUTH0_CLIENT_ID 
}); 

var app = express() 

app.use('/secured', authenticate, router()); 

これはあなたのルータが設定可能で再利用可能になります。

+0

は、パシャをありがとう! – user1354934

+0

ようこそ。しかし、実際に私の答えはより柔軟で柔軟なインターフェースを利用しています。ピエールの代わりに使うことをお勧めします。 –

関連する問題