Node.js 使用Javascript从JSON文件中的键中选择父对象

Node.js 使用Javascript从JSON文件中的键中选择父对象,node.js,json,express,object,Node.js,Json,Express,Object,我有一个文件brands.JSON,其中包含: { "Apple": { "ceo": "Steve Jobs", "os": "OSX" }, "Microsoft": { "ceo": "Bill Gates", "os": "Windows" } } 在节点服务器的app.js中: app.get('/pages/:brandId', (req, res) => { let requestedBrand = req.param

我有一个文件
brands.JSON
,其中包含:

{
  "Apple": {
    "ceo": "Steve Jobs",
     "os": "OSX"
  },
  "Microsoft": {
    "ceo": "Bill Gates",
     "os": "Windows"
  }
}
在节点服务器的app.js中:

app.get('/pages/:brandId', (req, res) => {
  let requestedBrand = req.params.pageId;

  console.log(requestedBrand) // might return "OSX" but I want it to become "Apple"

  let brands = JSON.parse(fs.readFileSync(__dirname + '/views/data/brands.json'));

  res.render('pages/brand', {
    brand: brands[requestedBrand]
  });
})

如果我点击带有
'/pages/OSX'
的链接,我希望
requestedBrand
变成
“苹果”
。同样,如果url要求
比尔·盖茨
,我需要从
品牌
对象的值中选择
微软
。找到其对象的值与
请求的品牌
匹配的对象,如果该对象存在,则呈现该对象:

app.get('/pages/:brandId', (req, res) => {
  let requestedBrand = req.params.pageId;

  console.log(requestedBrand) // might return "OSX" but I want it to become "Apple"

  let brands = JSON.parse(fs.readFileSync(__dirname + '/views/data/brands.json'));
  const obj = Object.values(brands).find(brand => Object.values(brand).includes(requestedBrand));
  if (obj) {
    res.render('pages/brand', {
      brand: obj
    });
  } else {
    // no object found
  }
})
实时片段:

const品牌={
“苹果”:{
“ceo”:“史蒂夫·乔布斯”,
“操作系统”:“OSX”
},
“微软”:{
“首席执行官”:“比尔·盖茨”,
“操作系统”:“Windows”
}
};
const requestedBrand=提示(“品牌”);
const obj=Object.values(brands).find(brand=>Object.values(brand).includes(requestedBrand));
如果(obj){
控制台日志(obj);
}否则{
console.log(“不匹配”);
}