2017-03-28 1 views
0

ausgefüllt werden soll. Ich bin mir nicht sicher, wie ich das erklären soll, aber ich versuche eine Funktion zur Verarbeitung der App-Route zu erstellen. Ich möchte ein Objekt übergeben, das von den Feldern im Anfragetextkörper ausgefüllt wird. Der folgende Code gibt mir einen Fehler req ist nicht definiert. Dies ist eine vereinfachte Version:Übergeben Sie das Modell an die Route, die durch den Abfrageparameter

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 
      } 
}); 

Was ich versuche

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

zu erreichen ruft, die die Funktion getPerson ("bob", "home")

http://host//getFriend?name=bob&sport=hockey nennen würde

, die die Funktion getPerson ("Bob", "Hockey")

anrufen würde

Antwort

0

Nun, reqist nicht in den Objektliteralen definiert, die Sie an getAction übergeben. Pass-Funktionen stattdessen:

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 
})); 
Verwandte Themen