当前位置:网站首页>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 :
边栏推荐
- Where are you going
- Archery installation test
- Use filters to count URL request time
- Robomaster visual tutorial (11) summary
- Alibaba cloud MySQL cannot connect
- FFA与ICGA造影
- Pigsty:开箱即用的数据库发行版
- MP4文件格式解析之结合实例分析
- Solutions to problems in sqlserver deleting data in tables
- The result of innovation in professional courses such as robotics (Automation)
猜你喜欢
Kubectl 好用的命令行工具:oh-my-zsh 技巧和窍门
Set up personal network disk with nextcloud
用语雀写文章了,功能真心强大!
Daily question brushing record (16)
Problems faced when connecting to sqlserver after downloading (I)
Chisel tutorial - 05 Sequential logic in chisel (including explicit multi clock, explicit synchronous reset and explicit asynchronous reset)
[the most detailed in history] statistical description of overdue days in credit
Ping error: unknown name or service
一份假Offer如何盗走了「Axie infinity」5.4亿美元?
第四期SFO销毁,Starfish OS如何对SFO价值赋能?
随机推荐
如何衡量产品是否“刚需、高频、痛点”
第四期SFO销毁,Starfish OS如何对SFO价值赋能?
蓝桥ROS中使用fishros一键安装
Dataguard 主备清理归档设置
[path planning] use the vertical distance limit method and Bessel to optimize the path of a star
PostGIS learning
一鍵免費翻譯300多頁的pdf文檔
Database interview questions + analysis
LinkedBlockingQueue源码分析-新增和删除
SQL connection problem after downloading (2)
Go learning notes (1) environment installation and hello world
P1308 [noip2011 popularity group] count the number of words
【编程题】【Scratch二级】2019.09 制作蝙蝠冲关游戏
Problems faced when connecting to sqlserver after downloading (I)
Tools for debugging makefiles - tool for debugging makefiles
Download AWS toolkit pycharm
【leetcode】day1
Automated testing: robot framework is a practical skill that 90% of people want to know
HDU - 1260 Tickets(线性DP)
One click free translation of more than 300 pages of PDF documents