mysql 在函数上使用MSC模型在控制器层上接收未定义

klh5stk1  于 2023-02-28  发布在  Mysql
关注(0)|答案(1)|浏览(91)

我尝试使用MSC模型对一个函数进行SQL查询,但是我找不到合适的方法使它工作。我可以使用API得到正确的错误消息,但是我不能创建新产品。
我不能记录我的消息,或接收一个id(自动递增的sql),我怎么才能使这个工作?
product.model

const regProduct = async (newProduct) => {
    const [sql] = await connection.execute(
      'INSERT INTO StoreManager.products (name) VALUES (?)',
      [newProduct],  
    
  );
  return { id: sql.insertId, name: newProduct };
};

product.service

const regProduct = async (name) => {
  const error = schema.validateName({ name });
  console.log(error.type, 'service error');

  if (error) return error;
  
  const newProduct = await productModel.regProduct(name);
  console.log(name);
  return { type: null, message: newProduct };
};

product.controller

const regProduct = async (req, res) => {
  const { name } = req.body;
  const { type, message, id, name: productName } = await productService.regProduct(name);
  
  console.log(message, 'controller message');

  if (type) return res.status(mapError(type)).json({ message });

  return res.status(201).json({ id, name: productName });
};

提前感谢您抽出时间!

ee7vknir

ee7vknir1#

在我的产品。服务我忘记得到我的错误类型,像这样:

const regProduct = async (name) => {
  const error = schema.validateName({ name });
  console.log(error.type, 'service error');

  if (error.type) return error;
  
  const newProduct = await productModel.regProduct(name);
  console.log(name);
  return { type: null, message: newProduct };
};

在我的product.controller上,我将我的消息重组为:

const regProduct = async (req, res) => {
  const { name } = req.body;
  const { type, message } = await productService.regProduct(name);
  
  if (type) return res.status(mapError(type)).json({ message });
  
  return res.status(201).json(message);
};

相关问题