Промежуточное программное обеспечение node.js для проверки обязательных параметров - PullRequest
4 голосов
/ 19 апреля 2011

Я использую node.js и выражаю в моем текущем приложении.Я создал несколько функций промежуточного программного обеспечения, каждая из которых создается следующим образом:

function loadUser(req, res, next){
  ...
}

Я хотел бы создать промежуточное программное обеспечение, которое проверяло бы наличие обязательных параметров в выраженном действии.Например, у меня есть действие / user / create, которое требует псевдоним, пароль, адрес электронной почты, ... в качестве обязательных параметров.Затем мне нужно было бы передать этот список параметров промежуточному программному обеспечению, чтобы он мог проверить, существуют ли эти параметры в req.query.

Есть идеи?

ОБНОВЛЕНИЕ

Наконец-то я сделал следующее (в экспресс-документации есть пример промежуточного ПО, для которого требуется дополнительный параметр http://expressjs.com/guide.html#route-middleware).

function checkParams(arr){
  return function(req, res, next) {
    // Make sure each param listed in arr is present in req.query
    var missing_params = [];
    for(var i=0;i<arr.length;i++){
      if(! eval("req.query." + arr[i])){
        missing_params.push(arr[i]);
      }
    }
    if(missing_params.length == 0){
      next();
    } else {
      next(JSON.stringify({ "error" : "query error", "message" : "Parameter(s) missing: " + missing_params.join(",") }));
    }
  }
}

Затем он вызывается так же, как и другие промежуточные программы:

app.post('/user/create', checkParams(["username", "password"]), function(req, res){
  ...
});

1 Ответ

0 голосов
/ 20 апреля 2011

Вы пытались реализовать его как динамический помощник вместо промежуточного программного обеспечения? Это может сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...