2016-07-16 9 views
-2

Zuerst verwende ich JetBrains WebStorm und verwendet, um die Node.js Express App Projekt zu erstellen.Rest API-Implementierung mit Parameter mit JetBrains WebStorm + node.js + express

Meine Änderungen waren bei app.js

app.get('/api/restaurants', function(req, res) { 
    console.log("Parameter[0]", req.params.restaurant_id); 
    res.json({ 
    '01010112D8139F13': '0ao123r1' 
    }); 
}); 
app.get('/api/restaurants/:id', function(req, res) { 
    console.log("Parameter[1]", req.params.restaurant_id); 
    res.json({ 
    'message': 'worked?' 
    }); 
}); 

ich Postbote Plugin in Chrom bin mit meinem api zu testen, und ich kann nicht localhost zugreifen: 3000/api/Restaurants restaurant_id = 01010112D8139F13 ohne durch router.route ('/ Restaurants') anstelle von router.route geroutet wird ('/ Restaurants /: restaurant_id')

Bei Konsole ich habe:

GET /api/restaurants?id=01010112D8139F13 200 1.803 ms - 31 

Wenn mir jemand helfen kann, danke im Voraus.

+0

Haben Sie einen bestimmten Fehler? Und bitte, fügen Sie Ihren Code nicht als Screenshot ein. Fügen Sie stattdessen den Code in die Frage ein. Weitere Informationen zur Verwendung der Website finden Sie in der [Hilfe] (http://stackoverflow.com/help). Sehen Sie sich insbesondere den Abschnitt [how to ask] (http://stackoverflow.com/help/how-to-ask) an. Willkommen bei Stack Overflow, und viel Spaß beim Fragen! –

+0

keine Fehler, ist er gerade von router.route behandelt ('/ Restaurants') Bei log i empfangen GET/api/Restaurants/restaurant_id = 01010112D8139F13 200 1,803 ms - 31 –

Antwort

0

restaurant_id ist kein Abfrageparameter, sondern ein variabler Teil in Ihrem Pfad. Zum Beispiel werden /restaurants/01010112 und /restaurants/1 beide von demselben Web-Request-Handler behandelt, da beide auf /restaurants/:restaurant_id Pattern passen.

Das Restaurant bestimmten Endpunkt müssen die folgende Art und Weise modifiziert werden:

app.get('/api/restaurants/:id', function(req, res) { 
    console.log("Parameter[1]", req.params.id); 
    res.json({ 
    'message': 'worked?' 
    }); 
}); 

Und verwenden Sie die folgende URL auf der Konsole:

/api/restaurants/01010112D8139F13

+0

immer noch nicht funktioniert =/ –

+0

Es arbeitet jetzt ! Danke, yeiniel –

Verwandte Themen