при вводе токена в исмнии нужно что бы выводился один пользователь с таким токеном express.js

при регистрации присваиваеься токен, после если смотреть информацию о пользователе по токену должн высвечиваться один пользователь, но у меня высвечиваються все пользователи помогите решить эту проблему index.js

app.get('/auth/me', CheckAuth, async (req, res) => {
    try {
      const user = await getUsers(req.userId);
  
      if (!user) {
        return res.status(404).json({
          message: 'Пользователь не найден'
        });
      }
      
      // Убираем поле passwordHash
      const { passwordHash, ...userData } = user;
  
      res.json(userData);
    } catch (error) {
      console.log(error.message);
      res.status(500).json({
        message: 'Нет доступа',
      });
    }
  });

user.js

async function getUsers() {
  const connection = await createConnection();

  try {
    const query = "SELECT id, fullName, email, avatarUrl FROM user";
    const [rows, fields] = await connection.execute(query);
    return rows;
  } catch (error) {
    console.error("Ошибка при выполнении запроса к базе данных:", error);
    throw error;
  } finally {
    connection.end();
  }
}

checkauth.js

export default (req, res, next) => {
  const token = (req.headers.authorization || "").replace(/Bearer\s?/, "");

  if (token) {
    try {
      const decoded = jwt.verify(token, "secret123");
      req.userId = decoded.id;
      next();
    } catch (error) {
      return res.status(401).json({
        message: "Невалидный токен",
      });
    }
  } else {
    return res.status(403).json({
      message: "Отсутствует токен доступа",
    });
  }
};

регистрация

{
    "email": "[email protected]",
    "fullName": "Стас",
    "avatarUrl": "https://yt3.googleusercontent.com/9K8pKqHnNx5tIzq8T4XCncUvhg5lcmPT8-ISvL99nOh7kCalkVFsAtil5l11HFK1e_O3L5y6ePI=s900-c-k-c0x00ffffff-no-rj",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MDE2ODUxOTQsImV4cCI6MTcwNDI3NzE5NH0.G7gOEsj7qEEJmSLar7Ax9NEHHITN9miIcHKGmPEvGys"
}

информация которая выводиться

{
    "0": {
        "id": 1,
        "fullName": "Темофей",
        "email": "[email protected]",
        "avatarUrl": "https://yt3.googleusercontent.com/9K8pKqHnNx5tIzq8T4XCncUvhg5lcmPT8-ISvL99nOh7kCalkVFsAtil5l11HFK1e_O3L5y6ePI=s900-c-k-c0x00ffffff-no-rj"
    },
    "1": {
        "id": 33,
        "fullName": "Стас",
        "email": "[email protected]",
        "avatarUrl": "https://yt3.googleusercontent.com/9K8pKqHnNx5tIzq8T4XCncUvhg5lcmPT8-ISvL99nOh7kCalkVFsAtil5l11HFK1e_O3L5y6ePI=s900-c-k-c0x00ffffff-no-rj"
    }
}

Ответы (1 шт):

Автор решения: Сонный кофеман

user.js

async function getUsers(userId) {
    const connection = await createConnection();

    try {
        const query = "SELECT id, fullName, email, avatarUrl FROM user where id = " + userId;
        const [rows, fields] = await connection.execute(query);
        return rows;
    } catch (error) {
        console.error("Ошибка при выполнении запроса к базе данных:", error);
        throw error;
    } finally {
        connection.end();
    }
}
→ Ссылка