2012-03-26 4 views
0

Ich fange mit Node.JS und Express.JS, ich möchte MVC Muster folgen. Ich fand Express-Ressource (https://github.com/visionmedia/express-resource) Es scheint gut, aber es löst mich Problem 100% nicht, denn wie Sie sehen können folgen REST-Schema und alle POST-Anfragen gesendet werden zu erstellen Sie Methode, es ist ein Problem für mich, ich versuche, es mit einem Beispiel zu erklären:So erstellen Sie benutzerdefinierte Controller-Aktion in Express.JS

Ich habe ein Bedienfeld, wo ich kann, zeigen, bearbeiten, erstellen, löschen einen Kunden.

Wenn ich fertig bin, um den Kunden zu bearbeiten Ich sende die Details mit einer POST-Anfrage, wenn ich dieses Modul (Express-Ressource) "create" -Methode wird automatisch aufgerufen werden, aber es ist sinnlos für mich, würde ich gerne Call-Aktionen abhängig von den URLs, also:

/users/create: Ich rufe es, wenn ich ein Benutzerkonto erstellen muss. Es sollte GET und POST akzeptiert

GET: das Formular, um zu sehen, die mir erlauben dem Benutzer zu erstellen

POST: die Informationen senden, wenn ich

So beende ich möchte immer ein Pfad wie:

/PATH/:action/:params (like: /users/edit/1) 

Aber ich würde schaffen Methode zu vermeiden, wie der Aufruf, wenn ich nicht schaffen etwas.

+0

Es scheint mir, dass Express-Ressource ist nach dem REST-Muster modelliert, und Sie wollen etwas anderes, ähnlich wie RPC. In diesem Fall ist Express-Ressource wahrscheinlich nicht das richtige Modul für Sie. Warum bauen Sie nicht Express ein und richten Ihr Routing nach Ihren Wünschen ein? –

+0

@LinusGThiel ja ich muss es selbst entwickeln, weil es nicht gut für meinen Zweck ist – Dail

Antwort

1

Warum nicht mit blank bone express?

app.get("https://stackoverflow.com/users/:userid/create", function (req, res, next) { 
    // serve the form 
}); 

app.post("https://stackoverflow.com/users/:userid/create", function (req, res, next) { 
    // save in the database 
}); 
+0

@JanJomgboom wenn ich viele Seiten habe, muss ich viele viele Routen haben wie diese – Dail

+0

Was ist mit app.get ("/: entity/: id/create ", Funktion (...) {...}) ? – radekg