Как определить, какие данные доступны в приложении реакции? - PullRequest
0 голосов
/ 17 января 2019

Я очень новичок в реагировать на .js, но реагируем, выражаем и монго дБ - довольно прозрачные и простые для понимания вещи. Самая большая проблема - избыточность: я не могу понять, что это такое и для чего было создано.

Я скопировал и поиграл с кодом из github , который отлично работает. Теперь я хочу добавить историю входа. Так что в backend я расширил models/User.js модель, а в /backend/routes/user.js каждый раз, когда пользователь входит в систему, теперь я добавляю запись в базу данных. Я вижу, что это на самом деле работает в базе данных (в средстве просмотра промежуточного программного обеспечения mongo). Но теперь я хочу показать это в реагирующем интерфейсе - и здесь все странно. Вместо того, чтобы просто предоставлять запись в базу данных, как это обычно делают, все обертывают и скручивают в совершенно непонятном Redux, и я получил только такой способ передачи данных (см., Например, компонент frontend Navbar.js):

const {isAuthenticated, user} = this.props.auth;

Откуда приходят эти user данные? Он имеет name, email, поэтому я могу отображать электронную почту или имя пользователя, извлеченные из базы данных. И даже пара неизвестных идентификаторов, таких как "iat": 1237752067, "exp": 1237755667: текстовый поиск по файлам не смог найти, откуда взялся этот iat - никаких ссылок в исходном коде. И этому user объекту не хватает некоторых полей из реальной пользовательской модели на сервере.

Как я могу отправить историю входа или дополнительные поля из базы данных во внешний интерфейс? (например, я хочу войти в консоль браузера, из файла Navbar.js)


ТЛ; др

Используется github ссылка с источниками.

Изменено Модель пользователя :

const LoginSchema = new Schema({
     date: {
        type: Date,
        default: Date.now
    },
    ip: String
});

добавил поле loginList: [LoginSchema] к UserSchema

добавлено действие регистрации в внутренних маршрутах , в разделе router.post('/login', (req, res) => {:

var myIP = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
user.loginList.push({ip: myIP});
user.save();

СЕЙЧАС я хочу получить это loginList из базы данных во внешний интерфейс, прямо к файлу navbar , ошибка здесь: console.log(user.loginList); у пользователя нет поля loginList, оно будет неопределенным. Там сидят излишки, это совершенно неизвестно для меня, и все следы потеряны отсюда. Нужна помощь для передачи этих данных из базы данных на веб-интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...