1

こんにちは、接続ルーターを使用してget、postなどのメソッドのリクエストを処理する接続ミドルウェアがあります。これら2つ以外のメソッドを選択した場合にエラーをスローしたいです。ルーター関数内にリクエストオブジェクトのスコープがありません以下は私のコードです

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 に答える