我正在使用带有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倍。我什么都没改变。