javascript - 受影响的行返回未定义
问题描述
所以,我已经尝试解决这个问题 2 个小时了,当我尝试从 mysql 表中删除一行时,我总是收到错误“无法读取未定义的属性影响行”。我为另一个应用程序使用了完全相同的代码,并且运行良好。但在这里我就是不知道发生了什么。
这是连接到数据库的代码以及从表 dbService.js 中删除行的实际函数:
`
class DbService {
static getDbServiceInstance() {
return instance ? instance : new DbService()
}
async deleteTodoItem(id) {
try {
id = parseInt(id, 10);
const response = await new Promise((resolve, reject) => {
const query = "DELETE FROM todoApp WHERE id = ?";
connenction.query(query, [id] , (err, result) => {
if (err){
reject(new Error(err.message))
}
resolve(result.affectedRows)
})
})
console.log(response)
return response === 1 ? true : false
} catch (error) {
console.log(error)
return false
}
}
}
`
以下是来自后端 app.js 的代码:
`
app.delete('/delete/:id', (request, response) => {
const { id } = request.params;
const db = dbService.getDbServiceInstance()
const result = db.deleteTodoItem(id)
result
.then(data => response.json({success : data}))
.catch(err => console.log(err))
})
`
这是来自前端的代码,它从 html 元素 index.js 中删除项目:
`
document.getElementById('todoItems').addEventListener('click', function(event) {
if(event.target.className === 'deleteBtn') {
deleteItemById(event.target.dataset.id)
}
})
function deleteItemById(id) {
fetch('http://localhost:3002/delete/' + id, {
method: 'DELETE'
})
.then(response => response.json())
.then(data => {
if (data.success) {
location.reload();
}
});
}
`
解决方案
我解决了它,这是 html 元素中的一个属性的问题,这使得我试图获得未定义的 id。
推荐阅读
- woocommerce - 产品库操作后的 WooCommerce
- identifier - 由于“未解析的标识符”错误,工作表视图结构崩溃
- c++ - 是否可以在 C++ 项目中模拟外部 C 库函数?
- ios - Swift Scale Animation 不是动画视图
- reactjs - 如何在反应中更新状态的对象数据
- django - 为什么 django 模板 if 语句工作错误?
- latex - 在乳胶中的 TOC 标题前添加一些空格
- git - 在一个分支上提交更改是否会从其他分支中丢弃它们?
- r - 使用 facet_grid 更改标签的问题
- payara - Payara 服务器无法启动,需要主密码才能启动服务器