私は自分の答えを見つけたと思います。それで、私はこの質問とこれを見つけました。私の用語がオフだったと思います。
私はいくつかのことをすることで私の問題を解決しました。まず、すべてのルートと URL を「名前空間」に変更しました (そうではありませんが、これでうまくいきます)。すべてのルートは現在/auth/
、それらの前にあります。すべてのリンクに同じことをしたので、すべてうまくいきました。
次に、app.js からサーバー部分を削除しました。したがって、代わりに:
require('http').createServer(app).listen(app.get('port'));
私はただします:
module.exports = app;
そして、いくつかのカスタム メソッドをアプリ オブジェクトに追加します。
app.isLoggedIn = auth.isLoggedIn;
app.notLoggedIn = auth.notLoggedIn;
次に、ルート アプリで次の手順を実行してauth
アプリを読み込みます。ルーティング、パブリック ファイル、その他すべての処理が魔法のように行われます。かなりクール。
var auth = require('./vendor/auth/app');
var app = express();
app.configure(function() {
app.use(auth); // use our auth app
// do a lot of root-app related stuff...
});
まだやるべきこと:
私のauth
アプリはいくつかのセッションのものを使用しています。2 番目のリンクによると、正しく理解できればapp.use(session...)
、アプリ内のものはauth
によってオーバーライドされapp.use
ます。また、URL を生成するために EJS ヘルパーを定義したいと考えています (そのようなsite_url('/facebook/callback')
ものは を指し/auth/facebook/callback
ます)。最後に、ルート アプリの設定を含める必要があります。app.js
(in )全体auth
を関数にラップして、構成オブジェクトを渡すことを考えています。このような:
module.exports = function(config) {
var app = express();
app.set('config', config);
// various app settings, routes, etc
// return app so it's available in my root.
return app;
}
もう少し情報が必要な場合は、コードを要点に投稿できるかどうかを確認します。私に知らせて!