当前位置:网站首页>Two small problems in creating user registration interface
Two small problems in creating user registration interface
2022-07-07 23:58:00 【Xiao Zhang, run quickly.】
Today, when creating the user registration interface , There are two small problems :① Use the method of traversing the object to determine whether the received data is empty ;② Determine whether the user name already exists . After repeated attempts , Finally found a solution , Now share with you !
One 、 The method of traversing the object determines whether the requested data is empty
This problem is to solve when users register , You need to insert the received data into the database , But when inserting the database , You must first judge whether the user has filled in the user information , So you need to judge whether it is empty .
At first , When solving this problem, I think of using if-else Judge , By judging whether the attribute value of each attribute in the obtained object is empty , To solve this problem , And it also realizes this function , But later found , This method is complicated , All consider using traversal arrays , Implement this function .
Don't talk much , Go straight to the code :
var obj = req.body;
var count = 400;
for (var k in obj) {
console.log(k, obj[k])
count++;
if (!obj[k]) {
res.send({ code: count, msg: `${k} Can't be empty ` });
return;
}
}
if (!/^1[3-9]\d{9}$/.test(obj.phone)) {
res.send({ code: 405, msg: 'phone Format error ' });
return;
}
Here's the thing to note : If you have to judge other conditions , The judgment sentence must be written for..in Outside , This time, I suffered a big loss here .
Two 、 Determine whether the user name already exists
When the user is entering a user name , You need to judge whether the following user names have been occupied , So I thought of querying the data in the database uname Is it equal to the received uname, But I made some small mistakes when trying to realize this idea , Led to bug.
Because it needs to be judged after querying the database , To get the result Is it empty , If it is empty , Direct response “ The user already exists ”, Then jump out of the function body .
Next on the code :
// establish sql command , Query whether the user name exists
pool.query('select * from xz_user where uname=?', [obj.uname], (err, result) => {
if (err) throw err;
if (result.length) {
res.send({ code: 406, msg: ' User name already exists ' })
return;
// Want to achieve Determine whether the user name already exists , By querying whether the database exists uname= Currently requested uname
// After getting the results , Want to end directly and respond to the result But there is a problem of secondary response
}
// establish sql command , Insert database
pool.query('insert into xz_user set ?', [obj], (err, result) => {
if (err) throw err;
res.send({ code: 200, msg: ' User registration successful ', data: result })
})
});
When writing the query and insert commands , There is a problem of secondary response , Later, it was found that the insertion command should be placed in the query statement , In this way, we can make return Jump out of this interface function .
But if you write the two commands separately , When the program finishes executing the query statement , After executing the query command ,return Just jump out of the query function , I will continue to execute the interrupted order , So it leads to the problem of secondary circulation .
Correct code :
My error cases :
边栏推荐
- HB 5469民用飞机机舱内部非金属材料燃烧试验方法
- Codeworks 5 questions per day (average 1500) - day 8
- Set up personal network disk with nextcloud
- 507 field D - extraterrestrial relics
- Chisel tutorial - 04 Control flow in chisel
- Ping error: unknown name or service
- Kubectl's handy command line tool: Oh my Zsh tips and tricks
- QT creator add custom new file / Project Template Wizard
- Is it safe to buy funds online?
- AWS AWS help error
猜你喜欢
[programming problem] [scratch Level 2] March 2019 draw a square spiral
C - linear table
【推荐系统基础】正负样本采样和构造
Uic564-2 Appendix 4 - flame retardant fire test: flame diffusion
用语雀写文章了,功能真心强大!
【史上最详细】信贷中逾期天数统计说明
快速回复二极管整流特性
Apng2gif solutions to various problems
ROS从入门到精通(九) 可视化仿真初体验之TurtleBot3
QT creator add JSON based Wizard
随机推荐
Kubectl 好用的命令行工具:oh-my-zsh 技巧和窍门
Rock-paper-scissors
用语雀写文章了,功能真心强大!
BSS 7230 flame retardant performance test of aviation interior materials
BSS 7230 航空内饰材料阻燃性能测试
光流传感器初步测试:GL9306
2022.7.7-----leetcode.648
Seven years' experience of a test engineer -- to you who walk alone all the way (don't give up)
C language learning
全自动化处理每月缺卡数据,输出缺卡人员信息
Fully automated processing of monthly card shortage data and output of card shortage personnel information
解析token的网址
Ping error: unknown name or service
Install sqlserver2019
Go learning notes (2) basic types and statements (1)
Pigsty:开箱即用的数据库发行版
@Configuration注解的详细介绍
Chisel tutorial - 04 Control flow in chisel
Pycharm basic settings latest version 2022
Archery installation test