您好,我有一个在后端使用的 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/