1

嗨,我有一个连接中间件,它使用连接路由器来处理对 get、post 等方法的请求。如果有人选择这两种方法以外的方法,我想抛出错误。我在路由器函数中没有请求对象的范围.以下是我的代码

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 中有请求对象的范围。我需要在这些之前检查 req.method 并抛出错误。我无法继续进行。任何帮助都会很有帮助

4

1 回答 1

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) {
   ...
}));
于 2013-05-09T06:26:44.680 回答