0

我正在开发基于 Angular、RESTful、Express 的单页应用程序。为了管理数据库,我选择了node-orm2。我的数据模型类似于:

var User = db.define("user", {
    name: String
});
var Order = db.define("order", {
    type: String,
    comment: String
}
// this line will produce methods: Order.getOwner(..), Order.setOwner(..), User.getOrders(..), User.addOrder(..)
Order.hasOne("owner", User, {reverse: 'orders'});
var Offer = db.define("offer",{
    price:  Number
});
// this line will produce methods: Offer.getOrder(..), Offer.setOrder(..), Order.getOffers(..), Order.addOffer(..)
Offer.hasOne("order", Order, {reverse: "offers"});

为了从 Angular 前端(使用$resource)访问这些模型,我为我的 Express 应用程序创建了 RESTful 处理程序:

router.route("/user/:user_id/orders").get(...).post(...)
router.route("/user/:user_id/orders/:order_id").get(...).delete(...)
router.route("/user/:user_id/orders/:order_id/offers").get(...).post(...)
router.route("/user/:user_id/orders/:order_id/offers/:offer_id").get(...).put(...)

之后我意识到数据模型定义和 RESTful API 实现之间有一个清晰的映射。

例如,如果我有Offer.hasOne("order", Order, ...)/user/:user_id/orders/:order_id. 这个子树是标准的:

  1. offers").post(...)- 创建报价;
  2. offers").get(...)- 获得所有报价;
  3. offers/:offer_id").get(...)- 获得具体报价
  4. offers/:offer_id").put(...)- 修改具体报价

应该可以定义模型,而不仅仅是注册它们以由 RESTful API 处理。

这个案例有没有现有的框架?

更新

我将作为带有参数的 PUT 操作实现的业务逻辑操作。

4

0 回答 0