我在前端有一个传输数据的表单。在后端我有一个app.js和一个itemList.js。我想用传输的数据覆盖或更新itemList.js。通过console.log我看到传入的数据是正确的。我还在前端得到消息“项目编辑成功”,只有在浏览器控制台我得到错误消息错误编辑项目。谁能告诉我出了什么问题?
我想找到错误并知道如何正确覆盖列表,这是我在app.js中的代码:
app.post('/edit', (req, res) => {
const itemsPath = path.join(__dirname, 'itemList.js');
const itemList = require('./itemList');
const itemIndex = itemList.findIndex(item => item.id === req.body.selectid);
console.log(req.body);
if (itemIndex !== -1) {
itemList[itemIndex].name = req.body.addname;
itemList[itemIndex].abbreviation = req.body.abbreviation;
itemList[itemIndex].urlCM = req.body.urlCM;
itemList[itemIndex].urlTcg = req.body.urlTCG;
itemList[itemIndex].trader = {
urlTraderENG: req.body.urlTraderENG,
urlTraderGER: req.body.urlTraderGER
};
itemList[itemIndex].miracle = {
urlMiracleENG: req.body.urlMiracleENG,
urlMiracleGER: req.body.urlMiracleGER
};
itemList[itemIndex].jke = {
urljkeENG: req.body.urlJkeENG,
urljkeGER: req.body.urlJkeGER
};
fs.writeFileSync(
itemsPath,
`const items = ${JSON.stringify(itemList, null, 4)}; \nmodule.exports = items;\n`
)
res.send('Item editing successfully');
console.log('item editing successfully');
} else {
res.send('Error editing item');
console.log('error editing item');
}
});
我的itemList.js结构如下:
//...
{
"id": 56,
"name": "test",
"abbreviation": "t",
"urlCM": "testurl",
"urlTcg": "",
"trader": {
"urlTraderENG": "",
"urlTraderGER": ""
},
"miracle": {
"urlMiracleENG": "",
"urlMiracleGER": ""
},
"jke": {
"urljkeENG": "",
"urljkeGER": ""
}
}
//...
有人能帮我解决吗?:D
1条答案
按热度按时间osh3o9ms1#
我找到了一个解决方案。我必须解析id: