如何在 Node.js 上传递查询字符串并在 Express.js 中获取对象结果?

how to pass query string and get object result in Express.js on Node.js?

我在 nodeJs 和 express 中创建了我的 api,我想通过传递字符串参数来获取一个对象,但我无法获取该对象。

这是我的应用

const express = require('express')
const app = express()

const produits = [
      {
         "codeProduit":"78",
         "nomCat":"nomCat11",
         "typeCat":"typeCat11"
      },
      {
         "codeProduit":"82",
         "nomCat":"nomCat21",
         "typeCat":"typeCat21"
      },
      {
         "codeProduit":"69",
         "nomCat":"nomCat31",
         "typeCat":"typeCat31"
      }
 ]


//http://localhost:3000/produits?codeProduit=78
app.get('/produits', (req, res) => {
    if(req.query.codeProduit != undefined && req.query.codeProduit != '') {
        res.json(produits[(req.query.codeProduit)])
    }  else {
        res.json(produits)
    }
     
 })
 
 app.get('/produits', (req, res) => {
      res.json(produits)
  })

  app.listen(3000,() => {
    console.log('Started on port 3000')
  })

我想得到这个对象

{
 "codeProduit":"78",
 "nomCat":"nomCat11",
 "typeCat":"typeCat11"
}

当我调用这个 url 时:http://localhost:3000/produits?codeProduit=78

请问我该怎么做?

您正在做的 produits[78] 是未定义的,因此您需要使用 find 来获得预期的产品

app.get('/produits', (req, res) => {
  if (req.query.codeProduit != undefined && req.query.codeProduit != '') {
    const result = produits.find(p => p.codeProduit === req.query.codeProduit);
    result ? res.json(200).json(result) : res.status(404).json();
  } else {
    res.json(produits);
  }
});