Je veux obtenir les données de tous les utilisateurs enregistrés dans meteorJS. D'après le Doc de meteorJS et stackOverflow, dans la fonction de rendu j'ai essayé quelques méthodes (les résultats sont comme validés). Je reçois seulement un tableau vide ou objet quand j'ai Abonnez-vous réellement 2 comptes d'utilisateurs db.users
:Récupérer les données de tous les utilisateurs enregistrés dans météore Js
résultat de db.users.find()
{ "_id" : "uFdKrgSyeBr6msxsH", "createdAt" : ISODate("2017-10-19T12:35:26.930Z"), "services" : { "password" : { "bcrypt" : "$2a$10$.LP2ftnNFDNx1gB7ouaMZ.OwXWLk89iDL6qjOuc.CVebtR/ziiv1K" }, "resume" : { "loginTokens" : [ ] } }, "username" : "AAA" }
{ "_id" : "sJXS2YZ3vENHK2TYT", "createdAt" : ISODate("2017-10-19T12:35:46.266Z"), "services" : { "password" : { "bcrypt" : "$2a$10$TMbeew0aQ/L71YCHjSMoveyf3Kj7Vf0uNnZc7D0OnVtze.ZcuuoE6" }, "resume" : { "loginTokens" : [ { "when" : ISODate("2017-10-19T12:35:46.274Z"), "hashedToken" : "4WpMPUrqydYyKSStCWayBVubNKhgUiLmRio7N1902mg=" } ] } }, "username" : "BBB" }
https://github.com/LeMueller/meteor_react_chatroom
Peut-être que quelqu'un connaît le problème. Merci d'avance.
Code sur le client:
import React, {Component} from 'react';
import ReactDOM from 'react-dom';
import { Meteor } from 'meteor/meteor';
import {DialogServer} from './dialogServer.js';
export default class SendArea extends Component{
constructor(props){
super(props);
}
handleSubmit(event) {
event.preventDefault();
// Find the text field via the React ref
const text = ReactDOM.findDOMNode(this.refs.textInput).value.trim();
if(Meteor.userId())
DialogServer.insert({
text: text,
owner: Meteor.userId(), // _id of logged in user
username: Meteor.user().username, // username of logged in user
createdAt: new Date(), // current time
});
// Clear form
ReactDOM.findDOMNode(this.refs.textInput).value = '';
}
render(){
let allUsersDate=Meteor.subscribe('allUsers'); //{subscriptionId: "4nHErSSjJLJesWJcq", stop: ƒ, ready: ƒ}
let allUsersD = Meteor.users.find({}).fetch(); //Array(0)
return(
<div>
<form className="new_message" onSubmit={this.handleSubmit.bind(this)}>
<input type='text' ref="textInput" placeholder="message to send"/>
<button onClick={this.handleSubmit.bind(this)}>send</button>
</form>
</div>
)
}
}
Code
dans le serveur:
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
Meteor.publish('allUsers', function(){
return Meteor.users.find({},{
fields:{
_id:1,
username:1
}
});
});
});
Je vais essayer. Merci beaucoup. –