I need to know how can I make POST request to json-server, by adding key,value pair to an existing object other than creating full object.
function generateUID() {
return (
Math.random().toString(36).substring(2, 15) +
Math.random().toString(36).substring(2, 15)
);
}
function formatQuestion(optionOneText, optionTwoText, activeUser) {
const newQuestion = {
id: generateUID(),
author: activeUser,
timestamp: Date.now(),
optionOne: {
votes: [],
text: optionOneText,
},
optionTwo: {
votes: [],
text: optionTwoText,
},
};
return newQuestion;
}
const saveQuestionHandler = async () => {
const formatedQuestion = formatQuestion(
optionOneText,
optionTwoText,
activeUser
);
await fetch(`http://localhost:3001/questions/`, {
method: "POST",
headers: {
"Content=type": "application/json",
},
body: JSON.stringify(formatedQuestion["id"] : formatedQuestion),
});
};
This is my json data base:
{
"questions": {
"8xf0y6ziyjabvozdd253nd": {
"id": "8xf0y6ziyjabvozdd253nd",
"author": "sarahedo",
"timestamp": 1467166872634,
"optionOne": {
"votes": ["sarahedo"],
"text": "have horrible short term memory"
},
"optionTwo": {
"votes": [],
"text": "have horrible long term memory"
}
},
}
}
I want to add a new question to this database to be like:
{
"questions": {
"8xf0y6ziyjabvozdd253nd": {
"id": "8xf0y6ziyjabvozdd253nd",
"author": "sarahedo",
"timestamp": 1467166872634,
"optionOne": {
"votes": ["sarahedo"],
"text": "have horrible short term memory"
},
"optionTwo": {
"votes": [],
"text": "have horrible long term memory"
}
},
"question ID":{
question object
}
}
}
I am trying to post but I can't pass add both key and value into the POST request. Only full object {}