如何以优雅的方式在多个项目中重用猫鼬模型

2024-01-03

假设我有 3 个 node.js 项目(1 个应用程序后端、1 个应用程序管理后端、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 https://eggjs.org/zh-cn/tutorials/progressive.html

那么除了复制粘贴之外还有什么优雅的解决方案呢?


我不会建议你发布一个 npm 包,原因是,作为一个优秀的 NodeJS 开发者,你不应该用对其他人没有帮助的包来污染 npm。除非您是可以访问私有包选项的付费 npm 用户。

你可知道package.json支持 git url,你可以阅读@Git URL 作为依赖项 https://docs.npmjs.com/cli/v6/configuring-npm/package-json#git-urls-as-dependencies

几个 git url 的例子package.json

// github url
git+ssh://[email protected] /cdn-cgi/l/email-protection:example/example-repo.git#v1.0.0

// bitbucket url
git+ssh://[email protected] /cdn-cgi/l/email-protection/example/example-repo.git#v1.0.0

我的建议是创建一个单独的包,其中包含用于设置配置的 API,在像您这样的场景中,它将是与数据库连接相关的内容。将其上传到私有 git 存储库并在所有应用程序中使用私有 git 存储库 url。然后在应用程序初始化阶段配置包并使用其 API。

现在,应用程序可以在任何有权访问私有存储库并可以重用代码的系统上构建。

您还可以将包放在公共存储库上,以防您无法访问私有存储库,这仍然比发布 npm 包以便在应用程序之间共享它要好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以优雅的方式在多个项目中重用猫鼬模型 的相关文章

随机推荐