如何优雅地在多个项目中重用Mongoose模型 [英] how to reuse mongoose model in multiple projects in the elegant way

查看:0
本文介绍了如何优雅地在多个项目中重用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

中的几个Git URL示例
// 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆