2017-03-28 16 views
0

これを説明する方法はわかりませんが、アプリケーションルートを処理する関数を作成しようとしています。リクエストボディのフィールドによって設定されるオブジェクトを渡したいと思います。以下のコードは、reqが定義されていないというエラーを返します。これは簡易版である:私は達成しようとしています何クエリパラメータによってデータが入力されるようにモデルを渡す

function getAction(data) 
{ 
    app.get(data.path, (req, res) => {   
     getPerson(data.model, (err, person) => { 
      return res.json(person); 
     }); 
    }); 
} 

getAction({ 
    path: "/getCustomer", 
    model: { 
      name: req.query.name, 
      address: req.query.address 
      } 
}); 

getAction({ 
    path: "/getFriend", 
    model: { 
      name: req.query.name, 
      sport: req.query.sport 
      } 
}); 

はgetPerson( "ボブ"、 "ホーム")関数を呼び出します

http://host//getCustomer?name=bob&address=home

http://host//getFriend?name=bob&sport=hockeyを呼んでいます

これは、関数getPerson( "bob"、 "hockey")を呼び出します。

答えて

0

まあ、reqは、getActionに渡すオブジェクトリテラルには定義されていません。です。代わりに関数を渡す:

function getAction(path, getModel) { 
    app.get(data.path, (req, res, next) => {   
     getPerson(getModel(req), (err, person) => { 
      if (err) return next(err); 
      res.json(person); 
     }); 
    }); 
} 

getAction("/getCustomer", req => ({ 
    name: req.query.name, 
    address: req.query.address 
})); 

getAction("/getFriend", req => ({ 
    name: req.query.name, 
    sport: req.query.sport 
})); 
関連する問題