节点.js路由继承
Node.js route inheritance
我对node.js很陌生,特别是表达.js。我正在开发 express.js 应用程序来导出一些 rest apis,我发现我有很多 dup 代码,我想避免这个问题。我正在寻找最佳实践解决方案。这是我编造的例子:
// 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)我在想可以有父类,让类别和产品类都继承父类。我真的不知道应该如何在节点中完成它.js
我读了几本 node.js 的书,但我没有看到作者提到太多关于如何以正确或至少最佳实践构建应用程序的内容。
我读过关于原型.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);
相关文章:
- Emberjs应用程序加载在除Index之外的所有路由上
- 正在使用$location.path(.)路由ng视图
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 从控制器继承了隔离的作用域以生成可重用的指令
- 未激发路由的控制器属性上的观察者
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- AngularJS ui路由器html5模式中断路由
- 发送json对象或使用express路由呈现视图
- 使用主干网和rails的静态页面路由
- 如何使用Passport保护路由终结点
- 当使用控制器作为语法时,如何从父指令继承属性
- 以jquery方式继承Javascript
- 有没有办法用routerLink/router.navigation附加查询/路由参数
- Nodejs和express路由,如何处理客户端的承诺
- TinyMCE实例在切换角度路由选项时会消失
- 什么'在Express中路由时,应用程序级中间件和路由器级中间件之间的区别是什么
- 使用Ampersand.js路由模块化应用程序
- JavaScript对象不是从原型链继承的
- 节点.js路由继承
- AngularJS中的路由更改和控制器继承