.find() 不是一个函数,当我尝试从 JSON 文件中查找 id 时,它会像这样返回

.find() is not a function it is returning like that when i'm trying to find a id from JSON file

提问人:Jagannath Samantra 提问时间:11/12/2023 最后编辑:Jagannath Samantra 更新时间:11/12/2023 访问量:28

问:

我正在尝试使用expressjs在节点中创建服务器

当我尝试从 products.json 获取特定 ID 并尝试在其中使用 find 方法时,它遇到错误说 products.find 不是一个函数

import express from "express";
import fs from 'fs'
import bodyParser from "body-parser";

const app = express()
const products = JSON.parse(fs.readFileSync('products.json'))

app.get('/products', (req, res) => {
    res.json(products)
})
app.get('/products/:id', (req, res) => {
    const id = parseInt(req.params.id)
    const product = products.find(p => p.id === id)
    res.json(product)
})

product.json下面在这里

{
    "products": [
        {
            "id": 1,
            "title": "iPhone 9",
        },...
节点.js json express get

评论

4赞 Bergi 11/12/2023
well 不是一个数组,所以它没有方法。记录它(或访问您的 /products 端点)以查看问题。productsfind
0赞 Phil 12/12/2023
这回答了你的问题吗?如何访问和处理嵌套对象、数组或 JSON?

答:

1赞 Chukwujiobi Canon 11/12/2023 #1

从解析的 JSON 中,是一个如下所示的对象:products

{
    "products": [
        {
            "id": 1,
            "title": "iPhone 9",
        }, 
        •••
    ]

}

如果你想让数组值成为 key ,请考虑在这里进行对象解构products

const { products } = JSON.parse(fs.readFileSync('products.json'))