首页 > 解决方案 > 如何从快递中提取响应对象?

问题描述

我正在尝试使用 mysql 构建一个 nodejs 应用程序,我想要的是我发送的控制器和消息应该在单独的文件中,如下所示

这是我的身份验证控制器文件

exports.signup = (req, res) => {
  try {
    const { name, username, email, phone_number, gender } = req.body;
    const payload = [name, username, email, phone_number, gender];
    connection.query(signupUserQuery, payload, (error) => {
      if (error) {
        return errorMessage('Signup Failed');
      } else {
        return createdMessage('Signup SuccessFul');
      }
    });
  } catch (error) {
    return errorMessage('Signup Failed');
  }
};

这是我保存消息的消息文件

module.exports = {
  createdMessage: function (message) {
    return res.status(201).json({
      isError: false,
      message: message,
    });
  },
  errorMessage: function (message) {
    return res.status(500).json({
      isError: true,
      message: message,
    });
  },
};

所以我想要的是每当执行控制器时我想返回这个函数但是问题是当我尝试这样做时我得到了错误因为 res 没有定义所以有什么方法可以在这个 messages.js 文件中使用 res

我尝试过的是我从控制器发送 res 对象,这有效,但这是重复的,我不想重复自己

还有一件事我在单独的文件链接中写了我的查询

insert into tbl_user (name,username,email,phone_number,gender) values (?,?,?,?,?)

但这里的问题是我必须根据我需要的字段打上问号,所以有没有办法在单个问号中做到这一点?

标签: javascriptmysqlnode.jsexpress

解决方案


你可以像这样使用它。

这是您的 messages.js 文件。

function createdMessage (message) {
  return {
      isError: false,
      message: message
  }
}

function errorMessage (message) {
  return {
      isError: true,
      message: message
  }
}



module.export = {
  createdMessage,
  errorMessage
}

这是认证控制器.js

const { createdMessage, errorMessage } = require("./messages.js");
exports.signup = (req, res) => {
  try {
    const { name, username, email, phone_number, gender } = req.body;
    const payload = [name, username, email, phone_number, gender];
    connection.query(signupUserQuery, payload, (error) => {
      if (error) {
        return res
        .status(400)
        .send(errorMessage('Signup Failed'));
      } else {
        return res
        .status(201)
        .send(createdMessage('Signup SuccessFul'));
      }
    });
  } catch (error) {
        return res
        .status(400)
        .send(errorMessage('Signup Failed'));
  }
};

推荐阅读