首页 > 解决方案 > Javascript 对象未定义 - Jquery + Node JS

问题描述

我正面临这个问题,我是 Javascript 和 NodeJS 的新手,下面我的 Route 上有这段代码/update/:id

controller.save = (req, res) => {
  const data = req.body
  const name = req.body.name
  const cpf = req.body.cpf
  req.getConnection((err, connection) => {
    const query = connection.query(
      `INSERT INTO clientes(Nome, CPF) 
    VALUES('${name}','${cpf}')`,
      data,
      (err, clientes) => {
        res.json(clientes)
      }
    )
  })
}

我有一个表单,它有一个名为“更新”的按钮,当我点击时,AJAX 做了这个。

$(document).on("click", ".update", function() {
  var user_id = $(this).attr("id")
  $.ajax({
    url: "/update/" + user_id,
    method: "GET",
    dataType: "json",
    success: function(to) {
      alert(to)
    }
  })
})

我收到警报[Object Object],当我转到我的网络响应时,我有这个:

  [{"ID":5,"Nome":"tobiaas","CPF":"107"}]

当我将警报更改为 时alert(to.Nome),我会收到警报Undefined

我不想使用 .map,因为我认为这是一种简单的工作方式。

标签: javascriptnode.jsajax

解决方案


您收到一个数组作为响应,Array.Nome不存在,您的输出是正常的。

您需要使用response[0]response.pop()访问该项目:

success: function(response) {
  const to = response[0]
  alert(to.Nome)
}

有关 javascript 数组访问的更多信息,请参阅W3School


推荐阅读