반응형
작업중인 웹 사이트에 대한 사용자 등록 시스템을 만드는 중이지만 몇 가지 문제가 있습니다.
나는 콜백을 중첩하지 않으려 고 노력하고 있습니다.
내가 달성하려는 것은 다음과 같습니다.
connection.query("select 1 as email from users where email = " + connection.escape(email), function(err, rows, fields) {
if(err) {
var error = {
error_message: err.code,
error_number: err.errno
};
return res.send(error);
}
if(rows.length > 0) {
var error = {
message: 'Email Address is Taken',
code: 2
};
return res.send(error);
}
});
connection.query("insert into users (email, password) values ("+connection.escape(email)+", "+connection.escape(hash)+")", function(err, rows, fields) {
if(err) {
var error = {
error_message: err.code,
error_number: err.errno
};
return res.send(error);
}
});
내 목표는 첫 번째 쿼리를 실행하고 행을 반환하면 두 번째 쿼리를 실행하지 않고 첫 번째 쿼리가 0 행을 반환하면 두 번째 쿼리를 계속 실행하는 것입니다.
두 번째 쿼리를 첫 번째 쿼리 안에 중첩하고 if를 다른 쿼리에 넣을 수 있다는 것을 알고 있지만 그 두 쿼리가있는 동안 bcrypt를 사용하여 암호를 암호화하도록 u를 설정했기 때문에 그렇게하고 싶지 않습니다. 또한 중첩되어야합니다.
두 쿼리를 중첩 할 필요가 없도록 작성하는 방법이 있습니까? 아니면 중첩이 유일한 옵션이 될 것입니까?
해결 방법
jfriend00이 위에서 말했듯이 node.js에서 개발하려는 경우 비동기 코드 작성에 익숙해 져야합니다.
"연쇄 된 약속"이 가장 좋은 방법 일 것입니다.
추가:
참조 페이지 https://stackoverflow.com/questions/32850045
반응형
'MySql' 카테고리의 다른 글
MySQL 'mysql'은 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. (0) | 2020.11.17 |
---|---|
MySQL PHP를 사용한 HTML 입력 유형 시간 설정 값 (0) | 2020.11.17 |
MySQL 오류 1045 (28000) : MAC OSX에서 사용자 'root'@ 'localhost'(암호 사용 : NO)에 대한 액세스가 거부되었습니다. (0) | 2020.11.16 |
MySQL 쉘 스크립트를 사용하여 여러 MySQL 명령을 실행하는 더 나은 방법 (0) | 2020.11.16 |
MySQL 서버 (PhpMyAdmin)에 로그인 할 수 없습니다. (0) | 2020.11.16 |
댓글