我现在正在学习 reactJS,以及如何使用 axios 从数据库 (mongoDB) 获取数据,当我想通过使用 find() 从数据库获取数据时,我现在被卡住了。

我不知道方法,但请求有效(我可以在控制台日志中看到),但我找不到在我的 React 应用程序中获取数据的方法。

这是代码

        this.state = {
         username: '079joseph',
         password: '079Mjoseph'
    }
}

checkUserDetails=()=>{
    axios.get('http://localhost:5000/users/findUser/' + this.state)
    .then(user=>{
        window.localStorage.setItem('moviesAccount', JSON.stringify(user))
        })
    .catch(err=>{
        console.log(err)
    })
}

发生的事情是请求很好,但我没有取回任何数据,(当我在 POSTMAN 上尝试该请求时,我正在取回用户的详细信息。

这是我针对该请求的模块代码

    router.route('/findUser/:userDetails').get((req, res)=>{
User.find({username: req.body.username, password: req.body.password})
.then(user =>  res.json(user), console.log('good'))
.catch(err => res.status(400).json('eror ' + err))

})

感谢您的帮助


您应该使用 req.params.userDetails.username 并且与密码相同。您请求 GET 方法并且 userDetails 是参数。请查收


感谢您的答复。实际上我得到了一个空的 res 数组。

你能在控制台上打印你的“req”对象吗?然后你就可以确定数据是正确的。

如果我使用 req.params.userDetails.username 那么我不会取回任何数据,我得到的是一个空数组!

您必须打印您的 req 对象以控制台处理服务器上的请求。只需添加 console.log(req) 并查看发生了什么。

我收到要求了。当我在控制台上打印它时,但是 res. 我没有得到