如何从express中提取响应对象



我正在尝试用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,那么有没有办法在这个消息中使用res。js文件

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

还有一件事,我把我的查询写在这个的单独文件链接中

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

但这里的问题是,我必须根据我需要的字段打上问号那么,有什么方法可以在一个问号中做到这一点吗?

您可以这样使用它。

这是您的messages.js文件。

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

module.export = {
createdMessage,
errorMessage
}

这是auth-controller.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'));
}
};

最新更新