【发布时间】:2021-06-28 16:47:20
【问题描述】:
我正在开发一个 REST API 的项目,希望得到有关这个简单的用户创建中间件的一些反馈。您将如何优化它以减少这么多“if”语句?
这是代码:
function middlewareUserCreation(req, res, next) {
const conditionUserName = req.body.userName != null && req.body.userName != undefined;
const conditionFullName = req.body.fullName != null && req.body.fullName != undefined;
const conditionEmail = req.body.email != null && req.body.email != undefined;
const conditionTelephone = req.body.telephone != null && req.body.telephone != undefined;
const conditionAddress = req.body.address != null && req.body.address != undefined;
const conditionPassword = req.body.password != null && req.body.password != undefined;
if (conditionUserName) {
if (conditionFullName) {
if (conditionEmail) {
if (conditionTelephone) {
if (conditionAddress) {
if (conditionPassword) {
const newUserName = req.body.userName;
const newEmail = req.body.email;
const checkAdmin = req.body.isAdmin;
for (user of validUsersArray) {
if (newUserName != user.userName) {
if (newEmail != user.email) {
return next();
}
res.send("Email taken, please use another one");
}
}
res.send("Username taken, please try another one");
}
res.send("A password is required");
}
res.send("Please provide a delivery address");
}
res.send("A contact telephone is required");
}
res.send("An email is required");
}
res.send("Please provide your full name");
}
res.send("Choose an username");
};
【问题讨论】:
-
反转
ifs 并添加return以将它们展平。您可能可以将其提取到验证逻辑中,而不是通过验证规则列表。
标签: javascript node.js logging