Node.js 如何与多个微服务共享mongoose模型

Node.js 如何与多个微服务共享mongoose模型,node.js,express,mongoose,microservices,Node.js,Express,Mongoose,Microservices,我有一个用户模型,它看起来像: import mongoose from 'mongoose'; const UserSchema = new mongoose.Schema({ name: String, email: { type: String, required: true, unique: true, }, password: { type: String, require

我有一个用户模型,它看起来像:

import mongoose from 'mongoose';

const UserSchema = new mongoose.Schema({
    name: String,
    email: {
        type: String,
        required: true,
        unique: true,
    },
    password: {
        type: String,
        required: true,
    },
});

export default mongoose.model('User', UserSchema);

我正在尝试与多个微服务共享此模型,但如何共享此模型?我应该通过http公开一个数据库服务,还是应该在每台服务器中手动创建模型并以这种方式使用它,还是有其他方法可以做到这一点?

跨微服务共享模式是危险的,因为它们可能会变得非常耦合,或者至少不是这样。微服务使用彼此的数据是正常的,但是模型不应该完全导入到另一个微服务中。相反,依赖的微服务应该使用一个子集,即远程模型的本地表示。为此,您应该使用一个。此ACL将作为输入接收远程模型,并作为输出生成该模型的本地、不可变/只读表示。ACL位于微服务的外部边界,即进行远程调用的位置

此外,跨微服务共享
*schema.js
文件会迫使您在所有其他微服务中使用JavaScript/NodeJ,这是不好的。每个微服务都应该使用最适合它的编程语言

我应该通过http公开数据库服务吗

该数据库是所属微服务的专用数据库。它不应该暴露在外