gpt4 book ai didi

javascript - NodeJS - 如何打破一个功能?

转载 作者:搜寻专家 更新时间:2023-11-01 00:10:34 24 4
gpt4 key购买 nike

最近有一个类似的问题,但仍然无法解决。在添加新用户之前,我必须验证注册页面。

app.post('/signup', function(req, res) {
//checking if first name is filled
if (req.body.first_name = "" || req.body.first_name = null || req.body.first_name = undefined) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : "empty_first_name" });
break;
}
//checking if last name is filled
if (req.body.last_name = "" || req.body.last_name = null || req.body.last_name = undefined) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : "empty_last_name" });
break;
}
//checking if email is filled
if (req.body.email = "" || req.body.email = null || req.body.email = undefined) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : "empty_email" });
break;
}
//checking if passwords match
if (req.body.password != req.body.repassword) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : "pass_missmatch" });
break;
}
...
...
...
//and finally if everything seems to be OK...
addUser(req.body.email, req.body.password, req.body.first_name, req.body.last_name, req.body.country, function(status) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "success" : 1 });
});
});

Node.JS 告诉我所有的中断都是非法的。但是我应该如何以适当的方式破坏我的功能呢?它不返回任何东西。谢谢!

最佳答案

return 语句用于停止函数。

您可以提供一个可选的返回值,但在这种情况下,我相信它会被忽略,因此您应该能够将 break; 替换为 return; .


旁注,但是您有很多重复代码,并且您在 if 条件中进行了分配。您通常可以排除重复。此外,如果您使用 if/else if/else 语句,则可以完全摆脱 return

这是一个例子。

function isEmpty(val) {
return val === "" || val == null;
}

function renderWithError(req, res, msg) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : msg });
}

app.post('/signup', function(req, res) {
if (isEmpty(req.body.first_name)) {
renderWithError(req, res, "empty_first_name");
}
else if (isEmpty(req.body.last_name)) {
renderWithError(req, res, "empty_last_name");
}
else if (isEmpty(req.body.email)) {
renderWithError(req, res, "empty_email");
}
else if (req.body.password != req.body.repassword) {
renderWithError(req, res, "pass_missmatch");
}
...
...
...
else {
addUser(req.body.email, req.body.password, req.body.first_name, req.body.last_name, req.body.country, function(status) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "success" : 1 });
});
}
});

关于javascript - NodeJS - 如何打破一个功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com