Node.js 将数据从父对象传递到子对象4

Node.js 将数据从父对象传递到子对象4,node.js,mongodb,angular,binding,Node.js,Mongodb,Angular,Binding,我有一些一般性的问题,我从main.ts 通过onInit我从mongoose数据库服务器获取数据,并将其保存在一个数组中 此阵列需要在其他组件中可用。我现在这样做的方式,通过使用service.ts 在这项服务中,我有很多行为主题和主题。因此,每当我从mongoose获取阵列数据时,我都会向服务发送一条消息,其他组件订阅该消息 我有时使用Subject而不是BehaviorSubject,因为它抛出错误消息,就像我使用的HTML中的*ngFor一样,它需要一个数组,而不是字符串“default

我有一些一般性的问题,我从
main.ts
通过
onInit
我从mongoose数据库服务器获取数据,并将其保存在一个数组中

此阵列需要在其他组件中可用。我现在这样做的方式,通过使用
service.ts

在这项服务中,我有很多
行为主题
主题
。因此,每当我从mongoose获取阵列数据时,我都会向服务发送一条消息,其他组件订阅该消息

我有时使用
Subject
而不是
BehaviorSubject
,因为它抛出错误消息,就像我使用的HTML中的
*ngFor
一样,它需要一个数组,而不是字符串“defaultmessage”

我只是想知道这是否是在页面之间移动数据的正确设置。 现在我也在使用这个消息系统更新我的组件。 因此,如果有人在我的网站上发表评论或帖子,我会向我的服务发送一条消息,这条消息反过来会更新一个可观察的内容,我的组件会再次订阅该内容

是否有更好的方法更新我的站点以获取新数据,是否有简单的方法解释为什么有时我从
*ngFor
收到此错误消息,在其他情况下,它不会在仍然使用
*ngFor
时抛出此错误

i、 e.当我更新一个可观察组件时,组件会立即接收到消息还是会接收到onInit

还有一个问题是,在组件的构造函数中使用下面的命令或是
onInit
命令是否是最佳做法。 我取消订阅OnDestroy

this.newService.currentMessageComment
  .takeWhile(() => this.alive)

   .subscribe(message => {
服务台

public messageSourceMarketCap = new BehaviorSubject<any>('default message');
currentMessageMarketCap = this.messageSourceMarketCap.asObservable();

public messageSourceHistory = new Subject<any>();
currentMessageHistory = this.messageSourceHistory.asObservable();

public messageSouceApi = new BehaviorSubject<any>('default message');
currentMessageApi = this.messageSouceApi.asObservable();

public messageSourceBody = new BehaviorSubject<any>('default message');
currentMessageBody = this.messageSourceBody.asObservable();
public messageSourceMarketCap=new BehaviorSubject(“默认消息”);
currentMessageMarketCap=this.messageSourceMarketCap.asObservable();
public messageSourceHistory=新主题();
currentMessageHistory=this.messageSourceHistory.asObservable();
public messageSouceApi=new BehaviorSubject(“默认消息”);
currentMessageApi=this.messageSouceApi.asObservable();
public messageSourceBody=new BehaviorSubject(“默认消息”);
currentMessageBody=this.messageSourceBody.asObservable();

为什么要使用BehaviousSubject。我想你的情况会更好。BehaviousSubject适合在创建observable时传递初始值的情况

您还可以通过发出一个空数组来快速修复,因为ngFor需要一个数组。从“默认消息”更改为[]


希望它能有所帮助

因此,现在我在一个组件中订阅了多条消息,这是正确的方式,还是重用消息系统是正常的。或者我只在更新相同的变量时才重用消息系统?重用性是更好的选择,但这取决于您的用例。编写程序时一定要记住,如果消息系统中引入了新功能,那么它是可以维护的。