node.js - 我如何使用mongoose、nodejs从Mongodb获取数据

标签 node.js reactjs mongodb mongoose

我刚刚开始学习 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>
        );
    }
}

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

我做错了什么。

最佳答案

编辑 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)
})

关于node.js - 我如何使用mongoose、nodejs从Mongodb获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54839867/

相关文章:

javascript - Mongoose 从嵌套数组中删除一个对象

node.js - 具有React和OIDC Authenticatino的Electron在DEV上工作,但在PROD上失败

mongodb - mongodump archlinux 上的数据库

javascript - 不推荐使用不带 'cursor' 选项的聚合命令

javascript - 将服务器端渲染添加到使用 create-react-app 创建的现有 React 站点

ruby-on-rails - 在 Ruby on Rails 中显示类别文章和标签

node.js - 如何从 next() 停止 Express.js 路由?

node.js - Nodejs 应用程序的 Azure Web App 在部署后加载空白屏幕

javascript - 更新状态 |对象不可迭代(无法读取属性 Symbol(Symbol.iterator))

reactjs - 在 Gatsby 中添加 Script 标签