如何优雅地在多个项目中重用Mongoose模型多个、模型、优雅、项目

2023-09-03 10:54:29 作者:凉初〆

假设我有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包以便在您的应用程序中共享它更好。

 
精彩推荐
图片推荐