【问题标题】:How to create custom Controller's action in Express.JS如何在 Express.JS 中创建自定义控制器的操作
【发布时间】:2012-03-26 20:40:11
【问题描述】:

我从 Node.JS 和 Express.JS 开始,我想遵循 MVC 模式。我发现 Express-Resource (https://github.com/visionmedia/express-resource) 看起来不错,但它并不能 100% 解决我的问题,因为您可以看到它遵循 REST 方案和 ALL POST 请求被发送到 create 方法,这对我来说是个问题,我试着用一个例子来解释它:

我有一个控制面板,我可以在其中显示、编辑、创建、删除客户。

当我完成编辑客户时,我通过 POST 请求发送详细信息,如果我使用该模块(express-resource)“创建”方法将被自动调用,但这对我来说毫无意义,我想调用操作取决于 URL,所以:

/users/create: 我在需要创建用户帐户时调用它。它应该接受 GET 和 POST

GET:查看允许我创建用户的表单

POST:完成后发送信息

所以我总是想要这样的路径:

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

但我想避免在不创建任何东西时调用 create 方法。

【问题讨论】:

  • 在我看来 express-resource 是按照 REST 模式建模的,而您想要其他东西,类似于 RPC。在这种情况下, express-resource 可能不适合您。为什么不在 Express 之上构建,并根据自己的喜好设置路由?
  • @LinusGThiel 是的,我需要自己开发它,因为它不适合我的目的

标签: model-view-controller node.js express


【解决方案1】:

为什么不用bare bone express?

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

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

【讨论】:

  • @JanJomgboom 因为如果我有很多页面,我需要有很多类似的路线
  • app.get("/:entity/:id/create", function( ... ) { ... } ) 怎么样?
猜你喜欢
  • 2015-02-20
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 2021-01-05
  • 1970-01-01
  • 2011-08-09
相关资源
最近更新 更多