I tried converting string data to number but it doesn't work

Viewed 34

I want to convert the priceOrigin, salePrice, and price received as strings into numeric strings.

controller.js

const readUserCart = async userId => {
  const userCart = await myDataSource.query(
    `SELECT u.id AS userId, u.name AS userName,
    JSON_ARRAYAGG(
        JSON_OBJECT(
          'cartId', c_o.id,
          'priceOrigin', REPLACE(p.price_origin, '.', ','),
          'salePrice', REPLACE(p.sale_price, '.', ','),
          'price', 
            CASE 
            WHEN p.sale_price is null
            THEN REPLACE(p.price_origin * quantity, '.', ',')
            ELSE REPLACE(p.sale_price * quantity, '.', ',')
            END
        )
      )AS products
    FROM users u
    JOIN products p ON p.id = c_o.product_id
    JOIN cart_order c_o ON c_o.user_id = u.id
    WHERE u.id = ?
    GROUP BY u.id`,
    [userId]
  );
  return userCart;
};

So I tried something like below and it still looks up as a string.

What am I doing wrong? Is there another way? I need help.

service.js

const readUserCart = async userId => {
  const userCart = await cartOrderDao.readUserCart(userId);

  userCart.map(data => {
    data.products = JSON.parse(data.products);
  });

  userCart['priceOrigin'] = Number(userCart['priceOrigin']) * 1000;
  userCart['salePrice'] = Number(userCart['salePrice']) * 1000;

  return userCart;
};
0 Answers
Related