2016-06-22 54 views
0
使用目錄處理時邏輯添加到我的路線

我加入以下代碼爲我的路線真的不明白在哪裏添加我將添加到處理函數中的其餘邏輯,如果有的話。 但目錄處理程序的存在不會讓我有一個功能。所以我想知道在哪裏添加這條路線的其餘邏輯。如何Hapi.js

編輯: 我嘗試添加插件電子圍欄:

var ElectricFence = require('electricfence'); 
var options = { 
    path: 'public', 
    url: '/menu/{param*}', 
    listing: true, 
    index: false, 
    cache: 3600000 }; 
server.pack.register([{plugin: ElectricFence, options: options}]); 
server.route({ 
    method: 'GET', 
    path: '/menu/{param*}', 
    handler: menuget }); 

但這似乎並沒有任何工作。

+0

你想實現什麼樣的邏輯?所有提供服務文件的選項都在這裏提到:http://hapijs.com/tutorials/serving-files – ZeMoon

+0

我不想使用我的GET路由來提供一些靜態文件。我希望它在數據庫中存儲一些數據,並且還希望在用戶點擊此路線時啓動會話。如果沒有處理函數,接受請求並返回答覆,我該如何實現這一切? –

+0

https://github.com/wraithgar/electricfence 電籬笆似乎提供了我正在尋找的功能,但它似乎並沒有工作。 –

回答

0
const Path = require('path'); 
    const Hapi = require('hapi'); 
    const Inert = require('inert'); 

    const server = new Hapi.Server({ 
     connections: { 
      routes: { 
       files: { 
        relativeTo: Path.join(__dirname, 'public') 
       } 
      } 
     } 
    }); 

    server.connection({ port: 3000 }); 

    server.register(Inert,() => {}); 

    server.route({ 
     method: 'GET', 
     path: '/{param*}', 
     config: { 
      validate: { 
       query: { 
        id: require('joi').number() 
       } 
      }, 
      handler: { 
       directory: { 
        path: '.', 
        redirectToSlash: true, 
        index: true 
       } 
      } 
     } 
    }); 

    server.ext('onRequest', function(req, reply) { 
     for(var key in req.query){ 
      if(key) { 
       //some database and session logic goes here 
       console.log(req.query); 
      } 
     } 
     reply.continue(); 
    }); 

    server.start((err) => { 

     if (err) { 
      throw err; 
     } 

     console.log('Server running at:', server.info.uri); 
    });