Sto lavorando alla creazione di un sistema di registrazione utente per un sito Web su cui sto lavorando ma sto riscontrando alcuni problemi.Node.js Domande sincrone con MySQL
sto cercando di stare lontano da dover callback nido, perché diventa un po 'disordinato, Quello che ho bisogno di aiuto con sta trovando se c'è un modo per creare query sincrone con il nodo-mysql
Ecco quello che ho sto cercando di ottenere.
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);
}
});
Il mio obiettivo è quello di avere la prima esecuzione di query e se che restituisce una riga quindi di non eseguire la seconda query, ma se la prima query restituisce 0 righe poi continuare ed eseguire la seconda query.
So che posso annidare la seconda query all'interno della prima query e inserirla in un altro ma è quello che non voglio fare perché mentre ho queste due query ho anche bisogno di usare bcrypt per crittografare la password che dovrebbe essere annidata pure.
C'è un modo per scriverlo in modo che non sia necessario nidificare le due query o nidificarle diventeranno la mia unica opzione?
Devi nido loro. –
Non è necessario utilizzare il raggruppamento. È possibile utilizzare la cascata asincrona e passare una variabile vero/falso tra i passaggi. Se non puoi voler eseguire la seconda query, passa semplicemente false dal primo. – CargoMeister
Se hai intenzione di sviluppare in node.js, dovrai imparare come scrivere un buon codice asincrono dato che questo è un elemento architettonico principale di node.js e se stai costruendo un server, devi usare le operazioni asincrone per mantenere alcun senso di reattività e scalabilità del server. Potrebbe anche iniziare ora. Suggerirei di imparare come usare le promesse in modo da poter concatenare operazioni sequenziali piuttosto che nidificare e rende più semplice gestire gli errori a tonnellate. – jfriend00