@Juventino96

Получить тех пользователей которые писали сообщение на Чате?

Есть два схемы

Chat

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var ChatSchema = new Schema({
    message: String,
    username: String,
    ip_address: String,
    created: { type: String, default: Date.now }
});

module.exports = mongoose.model('Chat', ChatSchema);


Users

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
    username : { type: String, required: true, unique: true },
    email: {
        type: String,
        trim: true,
        unique: true,
        required: 'Email address is required',
        validate: [function(email) {
            var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
            return re.test(email)
        }, 'Please fill a valid email address'],
        match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Please fill a valid email address']
    },
    avatar: String
});

module.exports = mongoose.model('User', UserSchema);


Как сделать чтобы получить данные того пользователя который написал сообщение?

var User = require('../models/user.js');
var Chat = require('../models/chat.js');

exports.index = function(req, res) {
    Chat.find(function(err, messages) {
        if (err) {
            console.log(err);
        }
        
        var users = [];

        for (var i = 0, len = messages.length; i < len; i++) {
            var s = User.find({username: messages[i].username}, function(err, user){
                if (err) {
                    console.log(err);
                }

                users.push(user);
            });

            var templateData = {
                users : users,
                messages: messages
            };

            res.render('index.html', templateData);
        }
    });
};
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@iddqd3
сделать отдельный роут в который будешь передавать идентификатор пользователя, а он в ответ вернет нужную инфу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы