gpt4 book ai didi

javascript - Node.js 路由继承

转载 作者:搜寻专家 更新时间:2023-10-31 23:43:22 25 4
gpt4 key购买 nike

我是 node.js 的新手,特别是 express.js。我正在使用 express.js 应用程序导出一些 rest 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 中做接口(interface)?

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);

关于javascript - Node.js 路由继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18629645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com