我最喜欢的标签按钮有点问题.我不能发送邮件,我不知道如何解决它……以下是我的前端代码:

import React, { useState, useEffect } from "react";
import { Link, useNavigate, useLocation } from "react-router-dom";
import axios from 'axios';
import { Buffer } from "buffer";

function CompoNuevos() {
  const { state = { success: false } } = useLocation();
  const [cnuevos, setCnuevos] = useState([]);

(...)

  useEffect(() => {
    fetch("http://localhost:3001/api/cnu")
      .then((x) => x.json())
      .then((y) => y.data)
      .then((allCnuevos) => setCnuevos(allCnuevos));
  }, []);
async function handleClick() {
  await axios.post('http://localhost:3001/api/oportunidades', {
    id: cnuevos.id,
    ofertas: true,
  });
}
  return (
(...)
{cnuevos &&
        cnuevos.map((cnuevo) => {
          return (
(...)
<button onClick={handleClick}>Marcar como oferta</button>
);
        })}
export default CompoNuevos;

这是我的路由:

import express from "express";
import { DataTypes } from "sequelize";
import sequelize from "../models/loadSequalize.js";
import { Sequelize } from "sequelize";

const Oferta = sequelize.define(
  "Oferta",
  {
    id: {
      type: DataTypes.INTEGER,
      primaryKey: true,
    },
    nombre: {
      type: Sequelize.STRING,
      allowNull: false,
    },
    precio: {
      type: Sequelize.INTEGER,
      allowNull: false,
    },
    descripcion: {
      type: Sequelize.STRING,
      allowNull: false,
    },
    data: {
      type: Sequelize.BLOB("long"),
      allowNull: false,
    },
    ofertas: {
      type: Sequelize.BOOLEAN,
      allowNull: false,
      defaultValue: false,
    },
  },
  { tableName: "cnuis", timestamps: false }
);

const oportunidadesRouter = express.Router();

oportunidadesRouter.post("/", async (req, res) => {
  const { id, ofertas } = req.body;

  await Oferta.update(
    { ofertas: ofertas },
    {
      where: {
        id: id,
      },
    }
  );

  res.send({ success: true });
});

export default oportunidadesRouter;

我也有续集连接和这个:

import express from "express";
import cors from "cors";
(...)
import oportunidadesRouter from './routes/oportunidades.js';
const app = express();
app.use(express.json());

(...)
app.use('/api/oportunidades', oportunidadesRouter);
const port = 3001
app.listen(port, () => console.log(`App listening on port ${port}!`))

有人知道我的错误会发生什么吗?

我try 了不同的方法,但我无法更改数据库上的布尔值...

推荐答案

因为cnuevos是一个数组,所以cnuevos.id将返回undefined(并且后端逻辑将失败).您需要将.map内的项的id作为参数传递给函数handleClick,并在后端端点上使用此id

Mysql相关问答推荐

如何获得表中只有最大值行的一个列被另一个列分区?

拒绝非超级用户访问停靠的MariaDB(超级用户工作)

MySQL INSERT INSERT ON DIPLICATE KEY UPDATE WITH COMPAY PRIMARY KEY失败

为什么我安装MySQL时不能使用3306端口?

为什么 MAX 函数通过调用在 group 中生成正确的结果

从表中 Select 具有不同顺序的列

模拟Mysql Cursor类的fetchone()方法,并将其返回值设置为None

此更新查询是否有任何可能的重写选项?

MySQL 中的 LATERAL 语法 - 是否只是说左表首先执行以便下一个可以引用它?

mysql 执行注释部分

如何在 SQL 的计算列中显示小数点后两位?

Facebook user_id:big_int、int 还是 string?

Ansible 幂等 MySQL 安装 Playbook

在 MySQL 中检测 utf8 损坏的字符

如何从 MySQL Workbench 中的图表生成 SQL 脚本?

MySQL - 在 MySQL UPDATE 或 SELECT 查询中使用 If Then Else

Ubuntu 中的 MySQL JDBC jar 文件在哪里?

如何使用 XML_LOAD() 将 XML 文件导入 MySQL 数据库表;功能

按 15 分钟间隔对 mysql 查询进行分组

MySQL 的最大并发连接数