当前位置:网站首页>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 :
边栏推荐
- Anaconda+pycharm+pyqt5 configuration problem: pyuic5 cannot be found exe
- C - linear table
- Connect diodes in series to improve voltage withstand
- 【编程题】【Scratch二级】2019.03 绘制方形螺旋
- Using Google test in QT
- BSS 7230 flame retardant performance test of aviation interior materials
- 【史上最详细】信贷中逾期天数统计说明
- 2022.7.7-----leetcode.648
- webflux - webclient Connect reset by peer Error
- Fully automated processing of monthly card shortage data and output of card shortage personnel information
猜你喜欢
Fully automated processing of monthly card shortage data and output of card shortage personnel information
Aitm3.0005 smoke toxicity test
Benchmarking Detection Transfer Learning with Vision Transformers(2021-11)
35岁那年,我做了一个面临失业的决定
95.(cesium篇)cesium动态单体化-3D建筑物(楼栋)
Using Google test in QT
Magic fast power
About the difference between ch32 library function and STM32 library function
Go learning notes (2) basic types and statements (1)
全自动化处理每月缺卡数据,输出缺卡人员信息
随机推荐
Introduction knowledge system of Web front-end engineers
P5594 [xr-4] simulation match
Postgres timestamp to human eye time string or millisecond value
webflux - webclient Connect reset by peer Error
Go time package common functions
About the difference between ch32 library function and STM32 library function
【编程题】【Scratch二级】2019.12 飞翔的小鸟
SQL connection problem after downloading (2)
May day C - most
Pypharm uses, and the third-party library has errors due to version problems
Archery installation test
【编程题】【Scratch二级】2019.09 绘制雪花图案
【編程題】【Scratch二級】2019.12 飛翔的小鳥
codeforces每日5题(均1500)-第八天
Rock-paper-scissors
gorm 关联关系小结
2022.7.7-----leetcode.648
mysql8.0 ubuntu20.4
Redis caching tool class, worth owning~
Uic564-2 Appendix 4 - flame retardant fire test: flame diffusion