当前位置:网站首页>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 :

边栏推荐
- Basic learning of SQL Server -- creating databases and tables with the mouse
- Rectification characteristics of fast recovery diode
- 一份假Offer如何盗走了「Axie infinity」5.4亿美元?
- Detailed explanation of interview questions: the history of blood and tears in implementing distributed locks with redis
- 35岁真就成了职业危机?不,我的技术在积累,我还越吃越香了
- 2022.7.7-----leetcode. six hundred and forty-eight
- [path planning] use the vertical distance limit method and Bessel to optimize the path of a star
- BSS 7230 flame retardant performance test of aviation interior materials
- C - minute number V3
- 10 schemes to ensure interface data security
猜你喜欢
随机推荐
[the most detailed in history] statistical description of overdue days in credit
第四期SFO销毁,Starfish OS如何对SFO价值赋能?
Aitm3.0005 smoke toxicity test
C - Fibonacci sequence again
PostGIS learning
Robomaster visual tutorial (10) target prediction
Preliminary test of optical flow sensor: gl9306
webflux - webclient Connect reset by peer Error
archery安装测试
Robomaster visual tutorial (1) camera
关于CH32库函数与STM32库函数的区别
Basic learning of SQL Server -- creating databases and tables with code
SQL connection problem after downloading (2)
Robomaster visual tutorial (11) summary
507 field D - extraterrestrial relics
P5594 [xr-4] simulation match
在网页中打开展示pdf文件
DataGuard active / standby cleanup archive settings
May day C - most
用語雀寫文章了,功能真心强大!








![[leetcode] 20. Valid brackets](/img/42/5a2c5ec6c1a7dbcdfb2226cdea6a42.png)