node实现批量删除
时间: 2023-11-27 11:46:35 浏览: 60
js实现批量删除功能
以下是使用Node.js实现批量删除的示例代码:
前端代码:
```html
<template>
<div>
<el-table :data="tableData" style="width: 100%">
<el-table-column type="selection"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
<el-button type="danger" icon="el-icon-delete" @click="delAll" :disabled="multipleSelection.length === 0" style="margin-left:15px;">批量删除</el-button>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: '张三', age: 18, address: '北京市' },
{ name: '李四', age: 22, address: '上海市' },
{ name: '王五', age: 30, address: '广州市' },
{ name: '赵六', age: 25, address: '深圳市' }
],
multipleSelection: []
}
},
methods: {
delAll() {
const ids = this.multipleSelection.map(item => item.id)
this.$axios.delete(`/api/delAll/${ids.join(',')}`).then(res => {
if (res.data.code === 200) {
this.$message.success('删除成功')
this.getData()
} else {
this.$message.error('删除失败')
}
})
},
getData() {
this.$axios.get('/api/getData').then(res => {
this.tableData = res.data.data
})
}
}
}
</script>
```
后端代码:
```javascript
// 批量删除数据
router.delete('/delAll/:ids', async (req, res) => {
const ids = req.params.ids.split(',')
const result = await User.deleteMany({ _id: { $in: ids } })
if (result.ok === 1) {
res.json({ code: 200 })
} else {
res.json({ code: 500 })
}
})
```
在上面的示例中,前端使用了Element UI的表格组件和按钮组件,通过`type="selection"`属性实现了多选功能,并通过`multipleSelection`数组来保存选中的数据。当点击批量删除按钮时,先将选中的数据的id提取出来,然后通过axios发送一个DELETE请求到后端的`/api/delAll/:ids`接口,其中`:ids`表示要删除的数据的id,多个id之间用逗号分隔。后端使用`$in`操作符来匹配多个id,然后调用`deleteMany`方法删除匹配的所有数据。
阅读全文