node.js - 在后面或前面映射响应

标签 node.js reactjs

您好,我有一个在后端使用的 api,我将在其中返回一个对象数组(未定义数量),

然后我映射整个结果以作为更清晰的答案发送

但我的问题是如何改进它?

我应该在前面或后面绘制这张 map ,如果有任何可能改进我的 map

   async getAllProduct(req,res){
        try {
            const listProducts= [];
            const results = await Products.findAll({
                // raw: true, <= remove
                attributes:['id','name', 'float', 'price'],
                include: [{
                    model: SubCategory,
                    as: 'subcategory',
                    attributes: ['id','name'],
                },
                {
                    model:Exteriors,
                    as: 'exteriors',
                    attributes: ['id','name']
                },
                {
                    model:Types,
                    as: 'types',
                    attributes: ['id','name']
                },
            ],
            })

            results.map( (products) => {
                const model = {
                    id: products.id,
                    name: products.name,
                    float: products.float,
                    price: products.price,
                    id_sub: products.subcategory.id,
                    subcategory: products.subcategory.name,
                    id_types: products.types.id,
                    type: products.types.name,
                    id_ext: products.exteriors.id,
                    exterior: products.exteriors.name,
                }
                listProducts.push(model);
            })
            if(listProducts){return res.status(200).json({listProducts})}
            else{return res.status(400).json({result: 'failed to get Products'})}
         } catch (error) {
             console.error(error);
         }
    }

最佳答案

您可以优化它:)当您可以将 .map 用于循环和推送时,您不需要仅使用它:.map 返回和数组

   let listProducts= results.map( (products) => {
        return {
            id: products.id,
            name: products.name,
            float: products.float,
            price: products.price,
            id_sub: products.subcategory.id,
            subcategory: products.subcategory.name,
            id_types: products.types.id,
            type: products.types.name,
            id_ext: products.exteriors.id,
            exterior: products.exteriors.name,
        }

    })

(基于意见的答案)我认为它应该在服务器中完成,它将减少响应的大小,这将使您的应用程序更快。 (如果你想节省服务器CPU的钱就放在前面)

关于node.js - 在后面或前面映射响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59148630/

相关文章:

node.js - 如何在 Node.js 应用程序中使用私有(private)安全连接?

javascript - 如何迭代对象数组并将每个对象显示到图表中?

javascript - 无法更改 React js 中的输入字段

reactjs - 如何等待初始化配置完成?

node.js - 抛出新的 TypeError('I - node_modules/semver/semver.js :296

node.js - 带有适用于 Linux 的 Windows 子系统的 Windows 10 上 VSCode 中的 Typescript 构建任务

node.js - 400 从 Discord API 请求 token 时出错

javascript - 如何在 NodeJS/Express API 中进行多个异步调用

javascript - 如何使用react-testing-library测试material ui MenuList组件上的按键事件

reactjs - react : load images in advance