sql >> Database teknologi >  >> NoSQL >> MongoDB

Meteor - Hvorfor skal jeg bruge this.userId over Meteor.userId() når det er muligt?

Dit spørgsmål ser ud til at blande Meteor.userId() og Meteor.user() . Hoveddelen af ​​spørgsmålet ser ud til at spørge om førstnævnte, mens emnelinjen spørger om sidstnævnte. Jeg vil prøve at tage fat på begge dele.

  1. På serveren, inden for en publiceringsfunktion, kalder enten Meteor.userId() eller Meteor.user() vil livedata_server. kører din metodeimplementering med brugerens ID (og nogle andre oplysninger) gemt i en bestemt på fiberen. Meteor.userId() henter bare ID'et fra slot på den aktuelle fiber. Det burde være hurtigt.

    Det er generelt nemmere at omfaktorere kode, der bruger Meteor.userId() end this.userId fordi du ikke kan bruge this.userId uden for metodeteksten (f.eks. this vil ikke have en 'userId'-egenskab i en funktion, du kalder fra metodeteksten), og du kan ikke bruge this.userId på klienten.

  2. På klienten, Meteor.userId() og Meteor.user() vil ikke kaste fejl og this.userId vil ikke virke. Kald til Meteor.user() er essentiel til users.findOne(Meteor.userId()) , men da dette svarer til en mini-mongo DB-forespørgsel, vil ydeevnen sandsynligvis ikke være et problem. Men af ​​sikkerhedsmæssige årsager returneres objektet af Meteor.user() kan være ufuldstændig (især hvis autopublish pakken er ikke installeret).


  1. Fjernelse af specifikke elementer fra array med MongoDB

  2. Antal forbindelser til MongoDB server

  3. MongoDB-ydelse med voksende datastruktur

  4. pymongo auth mislykkedes i python-script