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公开数据库服务吗
该数据库是所属微服务的专用数据库。它不应该暴露在外