如何优雅地在多个项目中重用Mongoose模型 [英] how to reuse mongoose model in multiple projects in the elegant way
本文介绍了如何优雅地在多个项目中重用Mongoose模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有3个node.js项目(1个app后端,1个app-admin后端,1个分析API)。在每个项目中,我都有一个模型架构调用贷款。
{
attributes: {
userId: { type: String, required: true, index: true, ref: 'users', comment: '用户id' },
amount: { type: Number, required: true, min: 0},
totalAmount: { type: Number, required: true, min: 0},
penaltyInterest: { type: Number, min: 0, required: true, default:
0 }
}
methods: {
getFee () {//some calculation ops
}
save() {//some db ops
}
sendTo3rdComponent() {//some network ops
}
}
这个模型有一些方法,它的模式设计,API实现。如何在其他两个项目中重复使用它。
在多个项目中重用设计和API非常重要。
通常我们通过将组件公开为NPM包来重用组件。但是,该组件有自己的数据库操作和网络操作。是否有可能且适当地将其作为NPM包?
另一个选项类似于eggjs
那么,除了复制粘贴,还有什么绝妙的解决方案呢?
nodejs
我不建议你发布一个推荐答案包,因为作为一个好的NodeJS开发人员,你不应该用对其他人没有帮助的包污染npm。除非您是有权访问专用包选项的付费NPM用户。
您知道package.json
支持Git URL吗,您可以阅读@Git URLs as Dependencies
package.json
// github url
git+ssh://git@github.com:example/example-repo.git#v1.0.0
// bitbucket url
git+ssh://git@bitbucket.org/example/example-repo.git#v1.0.0
我的建议是使用API创建一个单独的包来设置配置,在您这样的场景中,配置将是与数据库连接相关的内容。将其上传到私有Git repo,并在所有应用程序中使用私有git repo url。然后在应用程序初始化阶段配置包并使用其API。
现在,应用程序可以构建在任何可以访问私有repo并且可以重复使用代码的系统上。
您还可以将包放在公共回购上,以防您没有访问私有回购的权限,这仍然比发布NPM包以便在您的应用程序中共享它更好。
这篇关于如何优雅地在多个项目中重用Mongoose模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文