我使用Hapi作爲在之上的api框架node.js。我還使用會話管理和認證護照。模塊化與護照nodejs/hapi應用程序
我竭力要找到一種方法來分離出這些不同組件的邏輯。現在,我爲大部分請求處理程序都有一個單獨的文件 - 我希望從主應用程序文件中獲取所有處理邏輯。有什麼讓我反感的是一些處理者對護照的依賴。
有問題的初始化代碼:
//init server
var server = new Hapi.Server(config.hostname, config.port);
server.pack.allow({ ext: true }).require(plugins, function (err) {
if (err) {
throw err;
}
});
//setup auth
var Passport = server.plugins.travelogue.passport;
Passport.use(new LocalStrategy(handlers.authUser));
雖然大多數航線在一個單獨的文件中定義(像{ method: 'POST', path: '/logout', handler: handlers.logout}
)的問題是有依賴護照的一對夫婦的路線,我不知道我將如何訪問處理程序文件中的Passport變量。
例路線取決於護照:
{ method: 'POST', path: '/login', config: {
handler: function (request, reply) {
Passport.authenticate('local')(request, function (err) {
console.log("successful authentication?");
if (err && err.isBoom) {}
reply({message: "logged in"});
}); }}}
我想真正的問題是什麼,就是以不同的文件,以護照變量的引用最好的辦法?
非常感謝。
更新:這是pre v8 api代碼,註冊方式已更改。
FYI存在SO關於與集成了HapiJS PassportJS的問題(與最近的解決方案):http://stackoverflow.com/a/25193729/2075782 –