【问题标题】:delete request is not working on postman :删除请求不适用于邮递员:
【发布时间】:2022-08-15 21:41:55
【问题描述】:
const express = require(\"express\")
const app = express()
app.use(express.json())

const usersList = [{id :1,name:\"naser\",age:26},{id :2,name:\"mosa\",age:46}];


app.post(\'/users\',(req,res)=>{
    const newUser = req.body;
    usersList.push(newUser);
    res.status(200).json(usersList)
})

app.delete(`/users/:userId`,(req,res)=>{
    const id = req.params.userId    ;
    usersList.filter(user => {
        user.id !== id
        
    })
    res.status(200).json(usersList)
})

app.listen(\'3500\',()=>
console.log(\"our server is running\")
)

当我点击 \"http://localhost:3500/users/2\" 时,删除请求返回相同的数组而不删除

怎么了 ?

  • .filter 返回一个新阵列.
  • 使用.filter() u 创建一个新数组并且不要修改现有的 userList

标签: javascript node.js express


【解决方案1】:

filter 不会更改原始数组。您需要获取新数组并将其返回。

app.delete(`/users/:userId`,(req,res)=>{
    const id = req.params.userId    ;
    const newUsersList = usersList.filter(user => {
        user.id !== id
        
    })
    res.status(200).json(newUsersList)
})

如果你想改变真正的usersList,只需将返回值分配给它,而不是将它分配给一个名为newUsersList的新变量

usersList = usersList.filter(user => {
  user.id !== id
})

编辑

您可以使用以下代码从usersList 中删除用户

app.delete(`/users/:userId`,(req,res)=>{
    const id = req.params.userId    ;
    usersList = usersList.filter(user => {
        user.id !== id
        
    })
    res.status(200).json(usersList)
})

【讨论】:

  • 这仍然不会更新原始用户列表,因此删除用户将不起作用。
  • @CherryDT 你是对的。但我的意思是证明过滤器不会改变原始数组。我添加了编辑部分来解决您的问题。
猜你喜欢
  • 2019-07-03
  • 2021-04-13
  • 2020-11-08
  • 2019-08-25
  • 2021-10-06
  • 2021-12-04
  • 2020-11-20
  • 2017-06-08
  • 2021-05-24
相关资源
最近更新 更多