在JSON服务器中使用自定义id时出现PUT问题



我正在试用JSON服务器。我有一个关于使用";定制";在我们的api中,而不是";id";。下面是我的设置

我有一个以employeeid为id(不使用id(的员工端点

1( db.json看起来像

"employees": [
{
"employeeid": 1,
"fname": "manju",
"lname": "s"
},
{
"employeeid": 2,
"fname": "albert",
"lname": "dawson"
},{
"fname": "ramesh",
"lname": "watsons",
"employeeid": 3  }]

2( 使用启动json服务器json服务器--id employeeid db.json

3( 如果我进行POST,它会按预期自动生成employeeid。在这里之前一切都很好

4( 如果我在不发送员工id的情况下执行PUT,那么它将完全删除员工id我的意思是,如果我想更新员工id 2的名字(比如从albert到albertin(,并在PUT正文中发送以下内容

PUT URLhttp://localhost:3000/employees/2

PUT Body(没有employeeeid sent.因为它是在URL中发送的({"fname":"albertin";,"lname":"道森;}

PUT成功运行,但如果我执行GET,我会得到以下结果(员工id消失(

{
"employeeid": 1,
"fname": "manju",
"lname": "s"
},
{
"fname": "albertin",
"lname": "dawson"
},
{
"fname": "ramesh",
"lname": "watsons",
"employeeid": 3  }
]```

however, if I used an "id" instead of employeeid this used to work fine. Can anyone please explain if we can avoid sending employeeid in the body again
thanks

您可以执行此

const employer = [{
"employeeid": 1,
"fname": "manju",
"lname": "s"
},
{
"employeeid": 2,
"fname": "albert",
"lname": "dawson"
}, {
"fname": "ramesh",
"lname": "watsons",
"employeeid": 3
}
]
const newdata = {
"employeeid": 2,
"fname": "new albert",
"lname": "dawson"
}
const update = employer.map((x) => x.fname === "albert" ? newdata : x)
console.log(update)

最新更新