[英]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.