无法使用react函数调用express app.post

时间:2018-07-18 12:39:43

标签: node.js reactjs express

我正在使用带有react和firebase的express。因此,目前我无法推送到Firebase,因为react函数未在我的servers.js中调用app.post。这是我的index.js的代码。

componentDidMount() {
    this.callApi("Accessories")
        .then(res => {
            this.setState({
                productAccessories: this.snapshotToArray(res.data),

            }, () => {
                this.setState({
                    productAccessories: this.addCategory("category", "Accessories", "productAccessories")
                }, () => {
                    this.setState({
                        products: this.state.productMen.concat(this.state.productKid, this.state.productWomen, this.state.productAccessories),
                    }, () => {
                        this.setState({
                            productsToPush: this.filterProducts()
                        },()=>{
                            this.push()
                        })
                    });
                })
            })
        })
        .catch(err => {
            console.log(err);
        })
}

您可以看到,只有在productTopush装满后,我才尝试调用push函数。

这是我的推送功能代码

push() {
    var d = new Date();
    var today = d.getDate() + "/" + d.getMonth() + "/" + d.getFullYear()
    var updateData = {
        top4: this.state.productsToPush,
        date: today
    }
    console.log(this.state.productsToPush);
    this.postApi('/api/post/top', updateData)
        .then(res => {
            //console.log(res.data);
        })
    console.log('pushing really hard bro')
}

这是我的servers.js

    app.post('/api/post/top',(req,res) =>{
    console.log("top4 works")
    var ref=db.ref('/Top')
    ref.push(req.body.data)
    console.log("top 4 really does works")
})

这是我的callApi函数:

    callApi = async (category) => {

    const response = await fetch('/api/get/products/' + category);
    const body = await response.json();

    if (response.status !== 200) throw Error(body.message);

    return body;
};

所以我的push函数实际上被调用了,但是它没有调用server.js

非常感谢您的帮助!谢谢!

编辑:好的,这是最奇怪的事情,它实际上被推入火力中,但它似乎只能工作1/2倍。我什么都没改变。

0 个答案:

没有答案