如何定义React应用中可用的数据?

时间:2019-01-17 20:14:36

标签: reactjs redux

我对react.js非常陌生,但是react,express和mongo db是相当透明且易于理解的东西。最大的问题是redux:我无法获得它的真实含义,甚至是为它创建的。

我复制并使用了github中的代码,效果很好。现在,我想添加一个登录历史记录。因此,在backend中,我扩展了models/User.js模型,在/backend/routes/user.js中,每次用户登录时,现在我都在数据库中添加一条记录。我可以看到它实际上在数据库中有效(在mongo-express中间件查看器中)。但是现在我想在反应前端中显示它-事情在这里很奇怪。不仅仅是像通常那样提供数据库条目,而是将一切包裹和扭曲在完全无法理解的Redux中,而我只有这种方式来传递数据(例如,参见前端Navbar.js组件):

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

user数据来自哪里?它有nameemail,因此我可以显示从数据库中获取的电子邮件或用户名。甚至还有几个未知的ID,例如"iat": 1237752067, "exp": 1237755667:通过文件进行文本搜索都无法获得此iat的来源-源代码中没有引用。而且该user对象在后端缺少真实用户模型中的某些字段。

如何将登录历史记录或其他字段从数据库发送到前端? (例如,我想从Navbar.js文件登录到浏览器控制台)


tl; dr

已使用github与来源的链接。

更改了user model

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

将字段loginList: [LoginSchema]添加到UserSchema

router.post('/login', (req, res) => {下的backend routes中添加了日志记录操作:

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

现在,我想从数据库到前端navbar file来获得这个loginList,错误在这里:console.log(user.loginList);用户没有loginList字段,它将是未定义的。在那坐着redux,这对我来说是完全未知的东西,所有痕迹都从这里丢失了。需要帮助将这些数据从数据库传输到前端。

0 个答案:

没有答案