覆盖列表不起作用(Node.js)

djmepvbi  于 2023-04-20  发布在  Node.js
关注(0)|答案(1)|浏览(125)

我在前端有一个传输数据的表单。在后端我有一个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

osh3o9ms

osh3o9ms1#

我找到了一个解决方案。我必须解析id:

const itemIndex = itemList.findIndex(item => item.id === parseInt(req.body.selectid));

相关问题