function verNotasAluno(e) {
e.preventDefault()
setMateria(String(responseProfessor[1]))
axios
.post(`http://localhost:3001/getNotasAluno/${materia}`, { lupaAluno })
.then((response) => {
if (response.data === 'Erro') {
alert('Aluno não encontrado')
} else {
setNotasResponse(JSON.stringify(response.data))
}
})
}
return (
<div>
<form onSubmit={verNotasAluno}>
<span>Nome:</span> <input type={'text'} onChange={(e) => { setLupaAluno(e.target.value) }} required /> <br />
<br />
<button>Buscar Nota</button>
</form>
</div>
)
服务器端:
app.post('/getNotasAluno/:materia', (req, res) => {
const nome = req.body.lupaAluno
const materia = req.params.materia
let searchquery = ''
if (materia === 'Fisica') {
searchquery = 'SELECT nota_fisica, nota_fisica2, nota_fisica3 FROM pessoas where nome = ?;'
} else if (materia === 'Portugues') {
searchquery = 'SELECT portugues, portugues2, portugues3 FROM pessoas where nome = ?;'
} else if (materia === 'Matematica') {
searchquery = 'SELECT matematica, matematica2, matematica3 FROM pessoas where nome = ?;'
}
db.query(searchquery, nome, (err, result) => {
if (result.length === 0) {
res.send('Erro')
} else {
res.send(result)
}
})
})
正如我在标题中所说的,第一次请求提交表单时,会出现以下错误:Click to see the image error,但如果我在第一个请求之后再发出一个请求,它将正常工作
我是个初学者,谁能给我点提示吗?
2条答案
按热度按时间r8uurelv1#
我发现了什么地方出了问题,'materia'参数在服务器上是空的,这就是为什么第一个请求给了404。不得不使用UseEffect来更新useState之类的。感谢看到这段代码的人。
xtfmy6hx2#
从您的错误图像,后请求需要materia作为slug,但您没有在第一个请求中发送它。
在您的第一次API调用中,您只是调用
相反,它应该是
1是材料ID