如何将三元运算符保存为 JavaScript (Node.js) 上的值?

How to save ternary operator as a value on JavaScript (Node.js)?

我尝试使用代码在 Node.js (Express) 中创建方法。我想对 return 数据使用三元运算符,下面的代码工作得很好。

const update = async (req, res) => {
  try {
    const { id } = req.params
    const { name, price } = req.body

    if (!(name && price)) {
      !name ? 
      res.status(409).json({
        status: res.statusCode,
        message: "Name must not empty!"
      }) : 
      
      res.status(409).json({
         status: res.statusCode,
         message: "Price must not empty!"
      })

    } else {
      await Product.update({ name: name, price: price}, {
        where: {
          ...
        }
      })
    }
  
  } catch (err) {
    console.log(err)
  }
}

但是,我可以将三元运算符分配/保存为简单代码的变量吗?

我尝试按照以下代码保存为变量,但仍然无法正常工作。

const x = !name ? "Name" : "Price"

谢谢。

所以,几分钟后从互联网上进行研究。我从 ThoughtCo.

得到解决方案
const update = async (req, res) => {
  try {
    const { id } = req.params
    const { name, price } = req.body

    if (!(name && price)) {
      const x = (!name) ? "Name" : "Price"
      res.status(409).json({
        status: res.statusCode,
        message: `${x} must not empty!`
      })
      
    } else {
      await Product.update({ name: name, price: price}, {
        where: {
          ...
        }
      })
    }
  
  } catch (err) {
    console.log(err)
  }
}

首先,我使用 ternary-operator 和模板文字将 Name/Price 分配给变量。

在我看来,下面这段代码比以前简单多了。