【问题标题】:How can i get data from Mongodb using mongoose, nodejs如何使用 mongoose、nodejs 从 Mongodb 获取数据
【发布时间】:2019-07-17 07:15:30
【问题描述】:

刚开始学习Nodejs、mongodb、reactjs,遇到了麻烦。

我正在尝试从 mongodb 获取数据。

后端代码:

app.post('/tweet',(req,res)=>{
    tweetData.find((err,data)=>{
        if(err){
            return res.json({success: false, error: err});
        }
        return res.json({success: true, data:data});
    });
})

字体结束代码:

class TweetContainer extends React.Component{

    constructor(props){
        super(props);
        this.state = {
            data:null,
            API_URL : 'http://localhost:5000/tweet'
        }
    }

    componentDidMount(){

        fetch(this.state.API_URL)
        .then(response=>response.json)
        .then(result=>{
            this.setState({
                data: result.data
            });
            console.log(this.state.data)
        });

    }
    render(){

        return(
            <div id="main">
                <h2>Tweet</h2>
                <div id="stream">

                </div>
            </div>
        );
    }
}

当我记录数据时,控制台显示未定义。

我做错了什么。

【问题讨论】:

    标签: node.js reactjs mongodb mongoose


    【解决方案1】:

    编辑 1:

    您也在使用 mongoose 进行查询,这是错误的,因为它将第一个参数作为查询:

    app.post('/tweet',(req,res)=>{
        tweetData.find(queryObject || {}, (err,data)=>{
            if(err){
                return res.json({success: false, error: err});
            }
            return res.json({success: true, data:data});
        });
    })
    

    您在更新状态后立即记录状态,让我告诉您它不是这样工作的,它不会立即更新状态,所以您必须等待它这样做。

    您可以将回调传递给setState,以便它在状态更改完成后执行回调,如下所示:

    this.setState({ data: result.data }, () => {
        console.log(this.state)
    })
    

    【讨论】:

    • 日志为空,这种情况,怎么办?我想在渲染函数中使用数据。
    • 是的,我明白了。但现在我的反应有问题。我可以访问全部数据。但是当我使用点运算符访问数据时。它是空的。为什么
    • 什么点运算符?请解释@vuogvuog
    • 对不起我的英语不好。这意味着我可以使用 console.log(data) 向控制台显示数据。但是当我通过属性名称访问属性时(例如:data.success),日志显示:null。 i.imgur.com/T37VknJ.png
    猜你喜欢
    • 2013-11-06
    • 2011-11-20
    • 2012-02-12
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    相关资源
    最近更新 更多