2013-05-09 70 views
1

您好我有一個連接中間件,它使用連接路由器來處理get,post等方法的請求。我想拋出錯誤,如果一個人選擇除這兩個以外的方法。我不對路由器function.Below內請求對象範圍是我的代碼獲取連接路由器中的請求對象

var connectDomain = require('connect-domain'), 
connectRoute = require('connect-route'), 
connect = require('connect'), 
app = connect(); 
app.use(connectDomain()) // For error handling 
.use(connect.query())// To use automatic query 
.use(connectRoute(function (router) { 
    // To Handle Get request 
    router.get('/aaa', function (req, res, next) {   
     console.log ("Got Trigger request to GET"); 
    }) 
    // To Handle POST request 
    router.post('/aaa', function (req, res, next) { 

     console.log ("Got Trigger request to POST); 


    }) 
})) 

我有餘地內部router.get請求對象和router.post.I需要這些前檢查的req.method和拋出一個錯誤。我無法進一步處理。任何幫助將是非常有幫助的

回答

0

您可以使用中間件:

app.use(connectDomain()) 
.use(connect.query()) 
.use(function(req, res, next) { 
    if (req.method !== 'GET' && req.method !== 'POST') { 
    res.writeHead(405); 
    res.end('You are not allowed to use this method!'); 
    } else { 
    next(); 
    } 
}) 
.use(connectRoute(function (router) { 
    ... 
}));