报错如下:
错误原因:
由于编程错误或逻辑错误引起的。在发送响应之前,调用了多次 res.json()方法。
由于 HTTP 协议规定每个请求只能有一个响应,因此重复发送响应或在响应头已经被发送后尝试发送响应将导致错误。
这时需要对代码进行适当的重构,以确保只发送一次响应,并在响应头被发送后停止发送任何响应。另外,如果出现错误,应该立即停止处理,并向客户端发送错误响应,而不是继续处理请求。可以使用 return 或 next() 方法来退出当前函数并防止继续执行处理程序。
只要在res.json()等返回的前面加上 return就可以了
之前还以为 res.json就是返回了
// getList农场
router.get('/getFarmList', (req, res) => {
const connection = getConnection()
const sqlQuery = `select * from farm`
connection.query(sqlQuery, (error, results) => {
if (error) return console.log('查询发生错误')
if (results.length === 0) {
return res.status(500).json({ message: '农场租赁为空' })
}
return res.status(200).json(results)
})
})