我的应用程序基本上可以让您放置照片链接并检测人物的脸部。 所以这是交易,我正在与MERN一起开发,除了这部分以外,其他所有功能都在起作用:
app.put('/image', (req, res) => {
const { id } = req.body;
User.findByIdAndUpdate(id, {$inc : { 'entries': 1}})
console.log(id);
.then(user => {
return res.json(user.entries);
})
.catch(err => {
res.status(400).json('Error getting entries');
console.log(err);
})
});
在console.log上,它基本上说出'id',因此'user'是未定义的。当我尝试邮递员直接发送ID时,它可以正常工作,但我不知道为什么它返回的是undefined。我猜这是前端上的某个东西,无法获取用户ID并发送到后端。
这是onSubmit函数:
onButtonSubmit = () => {
this.setState({imageUrl: this.state.input});
app.models
.predict(
Clarifai.FACE_DETECT_MODEL,
this.state.input)
.then(response => {
if (response) {
fetch('http://localhost:3000/image', {
method: 'put',
headers: {'Content-Type': 'application/json' },
body: JSON.stringify({
id: this.state.user.id
})
})
.then(response => response.json())
.then(count => {
this.setState(this.setState(Object.assign(this.state.user, {entries: count})))
})
}
this.displayFaceBox(this.calculateFaceLocation(response))
})
}
这是Rank组件,用来显示一个条目的数量。
const Rank = ({ name, entries }) => {
return (
<div>
<div className='f3'>
{`${name} , your current entry count is...`}
</div>
<div className='white f1'>
{entries}
</div>
</div>
);
};
如果有人可以帮助我,那就太好了!
答案 0 :(得分:0)
如果请求正在处理错误,则应该是您将对象转换为字符串客户端,而忘记了解析服务器端。
body: JSON.stringify({
id: this.state.user.id
})
在服务器端,您应该解析主体以将其转换回对象
const data = JSON.parse(req.body)
const id = data.id
答案 1 :(得分:0)
我找到了答案。原来是函数loadUser(我没有在这里发布)。我忘记将id: user.id
的{{1}}更改为
非常感谢!