我对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
数据来自哪里?它有name
,email
,因此我可以显示从数据库中获取的电子邮件或用户名。甚至还有几个未知的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,这对我来说是完全未知的东西,所有痕迹都从这里丢失了。需要帮助将这些数据从数据库传输到前端。