簡體   English   中英

Node.js路由繼承

[英]Node.js route inheritance

我是node.js的新手,特別是express.js。 我正在使用express.js應用程序導出一些其他的api,我發現我有很多重復代碼,我想避免這個問題。 我正在尋求最佳實踐解決方案。 這是我的例子:

// app/routes/category.js
exports.create = function (req, res) {
  categoryModel.create(someData, function (error, category) {
    if (Util.isError(error)) {
      res.send(400, error);
    } else {
      res.send(category);
    }
  });
};

// app/routes/product.js
exports.create = function (req, res) {
  productModel.create(someData, function (error, product) {
    if (Util.isError(error)) {
      res.send(400, error);
    } else {
      res.send(product);
    }
  });
};

您可以看到我的創建路線代碼幾乎相同,但只是不同的模型(產品與類別)我的問題是:

1)有沒有辦法在node.js / express.js中進行繼承?

2)有沒有辦法在node.js / express.js中做接口?

3)避免重復代碼的最佳方法是什么?

4)我在考慮可以擁有父類,並讓類和產品類繼承自父類。 我真的不知道應該如何在node.js中完成

我閱讀了幾本node.js書籍,但我沒有看到作者提到如何在正確或至少最佳實踐中構建應用程序。

我讀到了Prototype.js,它是正確的路徑嗎?

任何想法和幫助將非常感激!

不需要繼承(特別是因為處理程序必須是函數,所以我很難看到如何在這里使用繼承)。 您只需創建一個函數生成器:

var generate_handler = function(model) {
  return function(req, res) {
    model.create(someData, function (error, obj) {
      if (Util.isError(error)) {
        res.send(400, error);
      } else {
        res.send(obj);
      }
    });
  };
};

然后你做

// app/routes/category.js
exports.create = generate_handler(categoryModel);

// app/routes/product.js
exports.create = generate_handler(productModel);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM